McGinn netted his first goal for Scotland after a goalkeeping blunder in the 10th minute as Steve Clarke's men were rewarded for a positive start.
But the visitors quickly got on top and the pressure paid off when Artem Dzyuba capitalised on a break of the ball to equalise five minutes before the break.
Scotland could not rediscover their fleeting early verve and the defeat leaves them six points off their second-placed opponents in Group I ahead of Monday's visit of Belgium and a trip to Moscow next month.
Clarke handed a debut to Leeds captain Liam Cooper after losing four centre-backs to injury. Oli McBurnie was handed a start up front after reassuring his manager and team-mates over his commitment after private and apparently jokey comments suggesting otherwise were caught on camera.
Scotland signalled their intent as Cooper launched a diagonal ball from kick-off and McGinn got a shot away after 20 seconds.
Zhirkov hooked a shot on to the roof of the net at the other end, but Scotland continued to press. O'Donnell flicked the ball off a post from a difficult angle following the hosts' third corner and they were soon ahead after a Scotland throw-in on the left wing.
Marshall made a more straightforward save from Zhirkov's header as Russia pushed forward.
Mulgrew had a header saved from Fraser's free-kick but the pressure grew at the other end.
Russia started another slick move down the right after a clearance came right back into the Scotland half and Dzyuba swept home from 14 yards after Andy Robertson's penalty-box challenge broke kindly for the Zenit St Petersburg man.
The World Cup quarter-finalists made the better start to the second half and playmaker Aleksandr Golovin fired just over with Scotland retreating.
Scotland were soon punished for losing possession again after Fraser could not control Callum McGregor's less-than-perfect pass.
Dzyuba slipped the ball in behind Cooper and Golovin played a square pass which O'Donnell, under pressure from Zhirkov, could only turn into his own net.
Marshall kept Scotland in it with a brilliant save from a Mario Fernandes header and another impressive stop from Zhirkov. A post also came to Scotland's rescue after Magomed Ozdoev saw his shot deflected off Scott McTominay after the Manchester United midfielder had conceded possession deep in his half.
Substitute Ryan Christie injected some creativity, having a shot saved before setting up an attack which led to a free-kick 25 yards out. However, the normally accurate Mulgrew missed the target.
Clarke threw Matt Phillips on up front and his team began to force chances but McGregor twice had shots blocked inside the box.
However, Mulgrew had to clear off the line from Aleksandr Erokhin after Scotland gifted the Russians another chance and the home side could not make the most of some late set-pieces.