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."
Both teams are in action on Saturday (15:00 GMT) as Dundee go to champions Rangers and St Johnstone host Ross County.
- 10McGowanSubstituted forGriffithsat 76'minutes
- 8DavidsonSubstituted forCraigat 45'minutes
- 17VertainenSubstituted forSolomon-Otaborat 68'minutesBooked at 90mins
- Andrew Dallas
- Shots on Target
Second Half ends, Dundee 1, St. Johnstone 0.
Viv Solomon-Otabor (St. Johnstone) is shown the yellow card for a bad foul.
Foul by Viv Solomon-Otabor (St. Johnstone).
Cammy Kerr (Dundee) wins a free kick in the defensive half.
Attempt missed. Leigh Griffiths (Dundee) left footed shot from outside the box is too high from a direct free kick.
Foul by Liam Gordon (St. Johnstone).
Daniel Mullen (Dundee) wins a free kick in the attacking half.
Foul by Shaun Rooney (St. Johnstone).
Paul McMullan (Dundee) wins a free kick in the defensive half.
Offside, Dundee. Charlie Adam tries a through ball, but Leigh Griffiths is caught offside.
Christopher Kane (St. Johnstone) wins a free kick on the left wing.
Foul by Ryan Sweeney (Dundee).
Shaun Rooney (St. Johnstone) wins a free kick in the defensive half.
Foul by Ryan Sweeney (Dundee).
Corner, Dundee. Conceded by Jamie McCart.
Attempt missed. Daniel Mullen (Dundee) right footed shot from the centre of the box misses to the left.
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.
Attempt missed. Cameron MacPherson (St. Johnstone) right footed shot from outside the box misses to the right.
Corner, St. Johnstone. Conceded by Cammy Kerr.