St Johnstone failed to impress again while suffering a fourth successive Premiership defeat.
Luis ‘Duk’ Lopes took advantage of sloppy Perth defending to net both of Aberdeen’s goals in the second half.
Saints, like against Hearts and Dundee United, did not fire out of traps and were under pressure in the early stages.
Leighton Clarkson’s clever flick sent Bojan Miovski into the box on just four minutes but goalkeeper Remi Matthews showed his class with a smart stop. He would be required on numerous first half occasions.
Another couple of early scares arrived in the form of a Duk back post header and Matty Kennedy free-kick before Saints managed to show any sign of attacking intent.
The best visiting chance unravelled in the 18th minute when neat play led to Drey Wright delivering for Stevie May to powerfully head wide of the mark.
Not long after Aberdeen thought they had the lead when Duk finished from inside the box after receiving a quick free-kick. It was ruled out for offside - following a VAR check - but Saints deserved to be punished.
Before the break Perth skipper Liam Gordon twice got it wrong with defensive headers to send Miovski clear but, on both occasions, the striker could not defeat Matthews.
Kellie Roos, up the other end, had not needed to make a save in the opening half although was required to be alert early second half when May nodded Cammy MacPherson’s corner narrowly over.
Manager Callum Davidson made his first change on 66 minutes, introducing World Cup star David Wotherspoon in place of Jamie Murphy.
The game was there for both teams and it was Aberdeen who made the breakthrough. A long ball over the top cut through the Saints defence with ease and, when the ball dropped for Duk, he guided low into the net on 74 minutes.
Davidson reacted by sending on forward Nicky Clark. Captain Gordon was replaced.
Soon Theo Bair and Ali Crawford entered the action too but the Dons doubled their lead with six minutes remaining.
That was when Graeme Shinnie’s corner was headed home by Duk. The defending, again, was all at sea.
Saints remain seventh in the Premiership.