Rowan Vine hooked home after a 68th-minute corner and Dave Mackay soon forced home to move Saints into fifth place in the SPL.
Gregory Tade opened the scoring for the home side in the 33rd minute after a mistake from stand-in centre-back Isaac Osbourne but Niall McGinn's superb volley had brought the Dons level a minute before half-time.
Osbourne again deputised for the injured Russell Anderson but Craig Brown made three changes from Sunday's goalless draw against Hibernian with wingers Jonny Hayes and Peter Pawlett dropping to the bench and strikers Scott Vernon and Rory Fallon came in along with Josh Magennis, who started out wide.
But it was at the back that Aberdeen struggled as they continued their mediocre start to 2013, which has seen them pick up two points from four games.
St Johnstone midfielder Liam Craig had an early header cleared off the line by Clark Robertson but that was a rare piece of goalmouth action in the first half hour with the wind appearing to cause problems for the players.
Tade had a great chance just before he scored when he raced on to a long ball. Jamie Langfield dived to his right and Tade went the other way but the goalkeeper stopped the shot with his foot.
Tade was gifted a second chance moments later when Osbourne took a poor touch after Callum Davidson had played a hopeful ball up the left flank and allowed the striker to run through on goal.
The former Raith Rovers and Inverness striker made no mistake this time, taking the ball around Langfield and stroking home before Osbourne could get back.
McGinn's cross soon took out home goalkeeper Alan Mannus and allowed Rory Fallon a great chance to equalise but Mackay got a touch just before the New Zealand international, who could not divert it home.
Osbourne soon moved to right-back, swapping with Joe Shaughnessy, and Aberdeen equalised out of the blue. Stephen Hughes played the ball down the right to Magennis, who got away from Davidson and sent over a dangerous ball into the heart of the goalmouth.
McGinn reacted quickly and was well placed but the chance was far from easy and he struck a powerful first-time effort into the roof of the net.
Osbourne lined up in his third position of the night after the break, playing in a central midfield three.
McGinn was now on the right flank and his trickery allowed him space to cross for Gavin Rae, who headed over from eight yards.
The Northern Ireland international then came close himself when he cut inside and fired into the side-netting from 20 yards.
Michael Doughty, who signed on loan from QPR yesterday, replaced Hasselbaink in the 64th minute as Saints matched Aberdeen's 4-3-3 formation.
And they soon went ahead following Craig's deep corner. Langfield stayed on his line and Magennis could only head into the air under pressure from Vine, who showed impressive agility to volley into the roof of the net.
Saints doubled their lead two minutes later with Vine again capitalising on hesitancy.
The forward chased a ball dinked into the left channel and appeared second favourite - but he hurled himself towards the ball and neither Robertson nor Magennis could clear with Langfield again staying put. The ball broke for Mackay, who fired home from close range.
Aberdeen claimed for a penalty when substitute Hayes hit the ball off Frazer Wright but referee Steven MacLean played on and the visitors could not get back into the game.
- Sports & Recreation
- Gregory Tade
- Josh Magennis