The game was played in front of the lowest league attendance in McDiarmid Park's history, with only 1,607 fans braving strong winds, torrential rain and freezing temperatures. And only the 355 Aberdeen supporters went home happy after their first away win of the season.
The Scotland Under-21 international capitalised on a poor clearance from Peter Enckelman to fire home from the centre spot and seal the points in the 79th minute.
Jack, who formed a solid central midfield partnership with Kari Arnason, played a major part in Scott Vernon's 14th-minute opener when Enckelman could only parry his strike.
Aberdeen had a late scare when Marcus Haber headed home in injury-time after Andrew Considine was sent off for a foul on Sam Parkin, but they held on to move fourth bottom.
But, goals apart, this was not an evening to savour for the fervent fans who braved the worst of the elements.
The match was initially postponed because of fog early last month but it went ahead despite other meteorological challenges.
The A9 was closed because of snow not far north at Blair Atholl and strong winds forced the closure of the Tay Bridge and the Tay Road Bridge.
But the pitch looked in decent condition amid an unceasing deluge of rain and the game went ahead despite concerns over the wind following discussions between referee Steven McLean and both managers.
Two clearances swirled out of park in the opening minutes, but home midfielder Chris Millar quickly rose above the conditions with a powerful curling effort which Jason Brown punched clear.
Aberdeen were kicking into the worst of the wind, but they scored after St Johnstone struggled to get the ball away following a spell of pressure.
David McCracken's poor clearance fell for Jack 20 yards and he kept his shot down well with Enckelman only able to parry it into the path of the unmarked Vernon, who slotted home as the hosts looked in vain for an offside flag.
Enckelman then almost lost a hopeful long ball in a sudden gust of wind, recovering to hold as Rory Fallon tried to pounce.
Aberdeen had an escape when Richard Foster barged over Haber as he ran into the box with McLean deciding the offence had taken place inches outside the area. Liam Craig's driven free-kick was diverted wide and the midfielder wasted a decent chance in injury-time when Sam Parkin's ball set him free on the left, his final product being a low ball that did not trouble Brown or find a team-mate.
Saints attacked immediately after the restart and Brown parried Dave Mackay's effort past his near post, before having a great chance in the 54th minute.
Enckelman's clearance held up in the wind and caught out the advancing Dons defence and Craig's header sent Murray Davidson clear.
But, on a night when hitting the ball low along the wet surface was the only option, Davidson inexplicably tried to chip Brown and the ball drifted over the bar.
Aberdeen soon made an enforced change with Rory McArdle replacing Youl Mawene and the new-look defence continued to be busy with Parkin, making his first start since breaking his ankle in February, seeing a looping header saved before curling over from 20 yards.
Arnason almost lit the game up midway through the half when he let fly from 35 yards, but the ball bounced off the outside of the post with Enckelman beaten.
The Finnish goalkeeper was soon passed from much further out.
Enckelman came 30 yards out of his goal in a bid to return a clearance as Aberdeen sat in their own half. But he could not get enough on his left-footed ball forward and it fell for Jack, who took a touch and drilled the ball inside the post.
Considine was shown a red card for a foul on Parkin two minutes later amid some confusion with McLean initially appearing to produce a yellow, but Aberdeen held on despite Haber heading home Millar's injury-time cross.