Craig nets the winner
Liam Craig grabbed the only goal of the game to hand St Johnstone victory as Dundee's Clydesdale Bank Premier League survival hopes were dealt a further blow.
Nearest rivals Ross County's own match fell victim to the weather but the Dens Park side failed to edge closer to the Highland outfit.
Defeat means Dundee have claimed just one point from their last seven matches.
Saints made two changes for the Tayside derby following their goalless draw against Inverness.
Chris Millar and Rowan Vine were both drafted in at McDiarmid Park in place of Paddy Cregg and Steven MacLean.
Dundee rang the changes, with Iain Davidson, Lewis Toshney, Steven Milne and Brian Easton all handed starting roles - the latter pair returning from injury.
The home side started well with plenty of possession in the opening stages but failed to make the most of their domination.
The first chance instead fell to Dundee when Davidson collected a Colin Nish pass and lashed just over from inside the area.
Jim McAllister then delivered an inviting corner into the packed box but there were no takers, with Declan Gallagher just failing to connect in front of goal.
Saints almost sparked the match into life after 31 minutes when an angled drive from the left from Vine forced a rapid response from Easton, who cleared off the line.
The game was crying out for a goal and the breakthrough came two minutes later.
Gregory Tade delivered a cross from the right as Peter Pawlett challenged Dundee goalkeeper Rab Douglas. The ball broke kindly for Craig and all that was required was a simple finish as he rifled into the empty net from 10 yards.
Saints made their first change after just 34 minutes when Callum Davidson, presumably injured, was replaced by Tam Scobbie.
Dundee were dealt an injury blow when Stephen O'Donnell left the field on a stretcher after 53 minutes following a clash with Murray Davidson.
The home side claimed for a penalty when Tade went to ground under pressure from Gallagher but there was no spot-kick award by referee John McKendrick.
Saints were threatening again when Craig rolled a low free-kick into the path of Vine and he hooked a shot inches wide of the far post.
At the other end, the Dark Blues almost levelled when Nish unleashed from 12 yards but a timely block from Scobbie ensured the effort dropped harmlessly over the crossbar.
The Perth side were desperate for a second goal but Pawlett earned himself a caution for diving as he battled McAllister for the ball.
Saints continued to push forward and Frazer Wright saw his header skim the crossbar after meeting Craig's free-kick.
Dundee were still hopeful of snatching a share of the points and Nicky Riley saw an impressive effort from distance fizz just past the upright but Saints held on.