Ali McCann's second goal in two games gave St Johnstone victory at Pittodrie and means Aberdeen remain without a Scottish Premiership goal in 2020.

Young midfielder McCann raced through to lift the ball over Joe Lewis after just six minutes of this drab contest, and it proved decisive.

Aberdeen toiled once more in attack and are without a win in their past four league matches. However, Derek McInnes' side remain fourth, three points behind Motherwell after the Fir Park outfit lost to Celtic.

St Johnstone, though, have lost just two of their last nine in the Premiership and stay eighth, eight points clear of the relegation play-off place.

Stilted Aberdeen swarmed by visitors

Aberdeen's Derek McInnes and St Johnstone's Tommy Wright are the Premiership's longest-serving managers and have both struggled in the past 18 months to meet the high expectations they have created for themselves.

But while St Johnstone have emerged from the winter break an improved side, Aberdeen have toiled, particularly in attack. They are still without a goal from open play since 26 December, a run of six games, and have not registered a single strike in their last four matches.

McInnes has continually spoken of the need for greater urgency and fluency of his team, and the additions of midfielder Dylan McGeouch, winger Matty Kennedy, and attacking full-back Ronald Hernandez in January were supposed to aid that. And though it's early days for all three - particularly Hernandez, who made his debut at Pittodrie - on the available evidence, they have made zero impact.

Aberdeen's saving grace has been their relative solidity, having kept two straight clean sheets, the latter an impressive showing against Rangers at Ibrox, but their defence was posted missing for the opener.

Liam Craig intercepted a pass on the edge of his own box, rampaged forward 30 yards without a red shirt anywhere near him and played the ball into McCann, who raced through unchallenged and dinked the ball over the onrushing Lewis for his second goal in two games.

It was glorious composure from the 20-year-old with a growing reputation, and he led the harrying and hassling of Aberdeen's midfield as they failed to establish any positive patterns of play once again.

After his strike there were as many injuries as chances for the remainder of the first-half as Ash Taylor limped off for Aberdeen quickly followed by St Johnstone's Michael O'Halloran, with Ryan Hedges' speculative volley and Scott McKenna's header from a corner all the hosts could muster.

McInnes threw on Niall McGinn for Jon Gallagher for the second half, but Aberdeen's issues are more deep-rooted than just personnel. Cosgrove, struggling for form, had a low shot saved by the feet of Zander Clark and also flashed the ball across goal but there were no takers.

St Johnstone offered little going forward after their goal, but their work without the ball was impressive as their energetic pressing forced Aberdeen backwards, then long, time and again.

Any joy for the home side came from set-pieces and speculative crosses, and a golden chance to level fell to McKenna who was denied from just a few yards out by the swinging arm of Clark, with Cosgrove bulleting over the rebound with his head. And, at the death, McGinn's free-kick rattled off a post as St Johnstone survived.

It was no less than Wright's side deserved, though, and they can now look up towards the top six, but Aberdeen's form since the winter break is alarming.

Saturday's Scottish Cup last-16 tie at home to Kilmarnock now takes on huge significance in their season, and defeat will cement the views of some fans who booed their team off the pitch that something needs to change.

Man of the match - Liam Craig

BBC Scotland's Tyrone Smith at Pittodrie

Craig isn't a player who regularly grabs the headlines, but his contribution deserves special mention. Quite simply, he didn't put a foot wrong, delivering a performance that oozed calmness and composure. In fact his pass to set up McCann's goal summed up his display.

Every St Johnstone player did their job, and did them well, something illustrated perfectly by the shift that Craig put in.

'A good, battling performance' - reaction

'I felt like booing myself tonight' - Aberdeen manager McInnes

Aberdeen manager Derek McInnes: "I think what you saw was a lot of players a bit unsure, not moving the ball quick enough, lacking a wee bit of confidence and we've got to overcome that.

"In saying that, I still thought we should take something, I thought we deserved a points with the chances."

St Johnstone manager Tommy Wright: "It was a good, battling performance particularly the second half. First half we were magnificent. The first goal was tremendous, it was a perfect pass and a great finish by Ali who's getting better and better.

"They've given me everything and since they've come back their performances have deserved more points than they've got.

St Johnstone 'magnificent' in first-half - Wright