After Aiden McGeady's initial shot was bumbled by keeper Igor Akinfeev, Keane's angled cross bounced back off the crossbar and the ball then pin-balled back to McGeady who drove across the face of goal.
The opening goal did arrive two minutes later but it was at the other end after Dunne had been blown up for a foul on Shirokov.
Given spilled Andrey Arshavin's free-kick and Sergei Ignashevich's overhead kick back into the danger zone was hammered to the net by Kerzhakov, who had given Glenn Whelan the slip.
Buoyed by the goal, the Russians began to find acres of space in the Irish half and goal-scorer Kerzhakov then tested Given with another fierce shot.
Shirokov was a dominant presence in central midfield with Glenn Whelan and Paul Green unable to make any impression.
As Russia continued to run rings around the Irish, the second goal came on 28 minutes as Alexander Anyukov's run and pull-back set up Dzagoev to score.
The goal-scorer's cool finish was aided by the ease with which he was able to lose his marker McGeady in the box.
Aiden McGeady battles with Russian playmaker Roman Shirokov
The Republic attempted to rally as Doyle tested Akinfeev and Keane then almost found the Wolves striker after a promising move.
But Russia could have added to their lead before the interval as Sean St Ledger's intervention prevented Kerzhakov pulling the trigger and Arshavin fired wide in injury-time.
The Republic tried to lift themselves after the break and Russian keeper Akinfeev denied McGeady after Keane had tried to burrow his way into the penalty area.
But the lead was 3-0 on 50 minutes as the superb Shirokov's shot from 25 yards was deflected by Dunne and into the net past a stranded Given.
Against the run of play, the Republic pulled a goal back on 72 as Keane slotted a penalty after Shirokov had blotted his copybook with a needless challenge on the Republic skipper.
Incredibly, there was only a goal between the sides six minutes later as substitute Long stabbed home from close range after Akinfeev had parried McGeady's point-blank effort.
Inevitably, the Irish produced late pressure but despite a few nervous moments in their defence, the visitors held on to take a deserved win.
Indeed, the Russians should have added to their lead in injury-time after more Arshavin trickery but substitute Pavel Pogrebniak missed from close range.
After the defeat, the Republic, who still lead the group on goal difference, now face the difficult task of regrouping for Tuesday's away game in Slovakia.
Republic of Ireland: Given, O'Shea, Dunne, St. Ledger, Kilbane, Green, Whelan (Gibson 66), Lawrence (Long 62), McGeady, Keane, Doyle (Fahey 71). Subs not used: Westwood, McShane, Keogh, Cunningham.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.