Match ends, Dundee 1, St. Johnstone 0.
Dundee leapfrogged Tayside rivals St Johnstone after earning back-to-back Scottish Premiership victories for the first time this season.
In a fiercely-contested first half, striker Danny Mullen broke the deadlock with a fine finish on the turn.
Like so often this term, the visitors were blunt in attack but also looked fragile in spells as Dundee pushed for a second after the break.
The result sees James McPake's side go ninth, a place above St Johnstone.
The Perth side are now without a win in four games and have failed to score in eight of their 15 league fixtures.
With just a point separating the sides pre-match, that provided a bit of extra heat to the all-Tayside encounter on a wintry night at Dens Park.
The contest got off to a frantic start, with Chris Kane failing to get a shot away from Jamie McCart's knock down at one end and the St Johnstone backline needing to be on hand to block efforts from Paul McMullan and Luke McCowan at the other.
But after a ding-dong opening, the game hit a bit of a lull before Dundee ramped it up heading towards the interval.
McCowan was again threatening as the winger saw a fine strike from 20 yards come crashing off the woodwork.
The home side made the net ripple with their next effort, however. Paul McGowan fizzed a pass into Mullen on the edge of the box, and he took a touch, turned and finished brilliantly down to Zander Clark's right.
St Johnstone were rattled and almost went in at the break two down when Charlie Adam's strike from range drifted just shy of the far post.
Callum Davidson would have had some choice words at half-time for his below-par side, but they did not show any signs of kicking into life after the interval as Dundee turned the screw.
Mullen had a header tipped over by Clark and watched another strike flash over.
The visitors' only real second-half opening came when Shaun Rooney's cross found Eetu Vertainen, but the Finnish forward's header was parried away by Adam Legzdins.
It was instead Dundee who continued to look the more threatening, as Max Anderson and McMullan had strikes drift wide of either post.
But in the end it was just the one for the hosts, and just one was enough to down a laboured visiting opposition.
Man of the match - Danny Mullen
What did we learn?
It is broken-record stuff to continue lambasting St Johnstone's attacking form, but it simply must improve if Davidson's side are to pull away from the bottom.
The Perth side's nine league goals is the lowest tally in the league - 10 worse off than bottom side Ross County, who they host on Saturday in a massive game.
Consecutive wins for Dundee is vital, as is the back-to-back clean sheets. Since that grim 5-0 defeat at home to County in late October, McPake's side have won three of their last four and kept clean sheets in those victories.
What did they say?
Dundee manager James McPake: "It was going to be a really tough game. We had to roll our sleeves up at times, but the better team won. We could have more comfortable if we took our chances.
"He [Mullen] was exceptional. He's been great for us and I'm delighted for him. He's a joy to work with, he's loving his football. You can see the appreciation from the fans."
St Johnstone manager Callum Davidson: "We are bitterly disappointed. It's a tough time for us. We could do things a lot better. We were really organised last season.
"It's about getting back to basics now. You'll go through periods like this all the time. We need to make sure the lads stick together. We have a huge game coming up on Saturday."
What's next?
Both teams are in action on Saturday (15:00 GMT) as Dundee go to champions Rangers and St Johnstone host Ross County.
Player of the match
MullenDaniel Mullen
Dundee
Avg
- Squad number9Player nameMullenAverage rating
7.90
- Squad number26Player nameAdamAverage rating
7.84
- Squad number17Player nameMcCowanAverage rating
7.59
- Squad number24Player nameAndersonAverage rating
7.56
- Squad number10Player nameMcGowanAverage rating
7.56
- Squad number5Player nameSweeneyAverage rating
7.55
- Squad number3Player nameMarshallAverage rating
7.53
- Squad number18Player nameMcMullanAverage rating
7.50
- Squad number29Player nameGriffithsAverage rating
7.43
- Squad number4Player nameFontaineAverage rating
7.35
- Squad number2Player nameKerrAverage rating
7.27
- Squad number1Player nameLegzdinsAverage rating
6.56
St Johnstone
Avg
- Squad number17Player nameVertainenAverage rating
5.75
- Squad number1Player nameClarkAverage rating
5.69
- Squad number6Player nameGordonAverage rating
5.25
- Squad number11Player nameO'HalloranAverage rating
5.08
- Squad number19Player nameRooneyAverage rating
4.90
- Squad number9Player nameKaneAverage rating
4.85
- Squad number4Player nameMcCartAverage rating
4.74
- Squad number21Player nameCrawfordAverage rating
4.58
- Squad number18Player nameMacPhersonAverage rating
4.56
- Squad number24Player nameBoothAverage rating
4.55
- Squad number27Player nameSolomon-OtaborAverage rating
4.39
- Squad number8Player nameDavidsonAverage rating
4.34
- Squad number26Player nameCraigAverage rating
3.62
Line-ups
Dundee
Formation 4-4-1-1
- 1Legzdins
- 2Kerr
- 4Fontaine
- 5Sweeney
- 3Marshall
- 18McMullan
- 24Anderson
- 26Adam
- 17McCowan
- 10McGowanSubstituted forGriffithsat 76'minutes
- 9Mullen
Substitutes
- 16Elliott
- 20Panter
- 21Lawlor
- 29Griffiths
- 35Cummings
- 48Lamb
St Johnstone
Formation 3-4-2-1
- 1Clark
- 19Rooney
- 6Gordon
- 4McCart
- 21Crawford
- 18MacPherson
- 8DavidsonSubstituted forCraigat 45'minutes
- 24Booth
- 11O'Halloran
- 17VertainenSubstituted forSolomon-Otaborat 68'minutesBooked at 90mins
- 9Kane
Substitutes
- 2Brown
- 3Devine
- 5Dendoncker
- 12Parish
- 25Ambrose
- 26Craig
- 27Solomon-Otabor
- Referee:
- Andrew Dallas
- Attendance:
- 5,196
Match Stats
- Possession
- Home46%
- Away54%
- Shots
- Home20
- Away10
- Shots on Target
- Home4
- Away2
- Corners
- Home6
- Away5
- Fouls
- Home9
- Away14
Live Text
Post update
Full Time
Second Half ends, Dundee 1, St. Johnstone 0.
Booking
Viv Solomon-Otabor (St. Johnstone) is shown the yellow card for a bad foul.
Post update
Foul by Viv Solomon-Otabor (St. Johnstone).
Post update
Cammy Kerr (Dundee) wins a free kick in the defensive half.
Post update
Attempt missed. Leigh Griffiths (Dundee) left footed shot from outside the box is too high from a direct free kick.
Post update
Foul by Liam Gordon (St. Johnstone).
Post update
Daniel Mullen (Dundee) wins a free kick in the attacking half.
Post update
Foul by Shaun Rooney (St. Johnstone).
Post update
Paul McMullan (Dundee) wins a free kick in the defensive half.
Post update
Offside, Dundee. Charlie Adam tries a through ball, but Leigh Griffiths is caught offside.
Post update
Christopher Kane (St. Johnstone) wins a free kick on the left wing.
Post update
Foul by Ryan Sweeney (Dundee).
Post update
Shaun Rooney (St. Johnstone) wins a free kick in the defensive half.
Post update
Foul by Ryan Sweeney (Dundee).
Post update
Corner, Dundee. Conceded by Jamie McCart.
Post update
Attempt missed. Daniel Mullen (Dundee) right footed shot from the centre of the box misses to the left.
Post update
Attempt missed. Paul McMullan (Dundee) right footed shot from the centre of the box is close, but misses the top left corner. Assisted by Leigh Griffiths.
Post update
Attempt missed. Cameron MacPherson (St. Johnstone) right footed shot from outside the box misses to the right.
Post update
Corner, St. Johnstone. Conceded by Cammy Kerr.