A superb display by Niall McGinn inspired Aberdeen to a deserved win in atrocious conditions at Pittodrie.
Frazer Wright's volley over the bar was the sum of the visitors' first-half efforts against a raft of wasted Aberdeen chances.
But, 10 minutes after the interval, McGinn curled a free-kick from 22 yards beyond Saints keeper Alan Mannus.
And, in front of Aberdeen's lowest home crowd this season, he scored a second, racing on to a Jamie Masson pass.
The result lifts Aberdeen above St Johnstone in the Scottish Premier League, into fourth spot.
Aberdeen captain Russell Anderson won the toss and opted to begin the game with the freezing, driving wind and rain at his team's back.
And, in front of a crowd depleted by the hideous conditions, indifferent home form and the game's proximity to Christmas, it was the Dons who provided most of the entertainment for the 7,051 brave fans in the first half.
McGinn has been an inspirational figure for Craig Brown's men this season and he almost put his team in front with a rasping shot from 25 yards that Mannus parried away just before it sneaked in at the top corner.
Chris Millar drove wide for the Saints to remind the home team of the visitors' threat, but it was McGinn who looked the most promising player on show when he powered a wind-assisted shot from 18 yards that the drenched Mannus saved sharply.
Brown had opted for the burly Josh Magennis to partner Rory Fallon up front and the latter really ought to have burst the net from eight yards instead of volleying wide after a cross from the left had been deflected by the Northern Irishman into his path.
In a scrappy match, the tide continued to flow towards the Saints goal. Megginson, having won his team a corner after a purposeful run, got on the ball again and crossed to the back post, where Fallon and Anderson dived to head home, only to miss the ball entirely.
Paddy Cregg came on to replace Saints' Millar, preceding a dreadful miss by Wright as he diverted Mackay's sweeping cross from the right over the bar from six yards.
The rump of St Johnstone fans, huddled together like frozen penguins, were incredulous.
Soon, though, the McGinn and Mannus contest resumed and, just before half-time, the Dons player volleyed Magennis's wonderful cross from the left and somehow Mannus made a block with his legs.
In 55 minutes McGinn flashed a shot across the face of goal and eight minutes later he smacked home a curling free-kick for the opener.
Unbowed by conceding the goal, Mannus continued to thwart the efforts of the home attackers as the St Johnstone midfield failed to keep possession for anything more than 10 seconds.
The keeper got a hand to a McGinn drive from the left to concede a corner and then made a superb double save to keep St Johnstone in the game, Magennis and McGinn trying their luck in quick succession.
With 10 minutes remaining, Aberdeen made the points secure as McGinn raced on to a ball from the left by sub Masson to keep his cool and slot the ball home from 14 yards.
It was just reward for the home team and the fans who braved the weather to support their team.
Sorry, we were unable to load match stats, please try again.