Yorkshire 229 (Bairstow 95, S Curran 6-54) and 142 for 5 (Lyth 58, Virdi 3-52) trail Surrey 414 (Pope 158*) by 43 runs
Curran took 6 for 54 in Yorkshire's first innings, when even a scintillating 95 by Jonny Bairstow off 94 balls could not prevent them from being bundled out for 229 in reply to Surrey's 414.
When Yorkshire followed on, Root's bid to repair the second innings from 10 for 2 was cut short when off spinner Virdi drew him forward with a beautiful delivery that drifted away and then, from wide out, turned back through the England Test captain's gate to bowl him for 23.
Virdi, in what is fast becoming his trademark celebration, sprinted off towards deep point in a joyous arm-waving run, followed by his Surrey teammates. It was his first wicket of the game, but his 15th of the season so far, and he is not 20 until mid-July.
Indeed, there were two more celebratory runs from Virdi in the day's long final session as he added the wickets of Adam Lyth, caught at slip for 58, and Harry Brook, leg-before for 8 to another which spun sharply. He could have had an 18th wicket of the season, too, had Ben Foakes not missed a relatively easy stumping chance when Jack Leaning, on 9, was drawn forward and beaten by another beauty.
Virdi's 19-over spell of 3 for 52 left Yorkshire 142 for 5 by the end of day three, still trailing by 43 in this Specsavers County Championship Division One match, and on tomorrow's final day Surrey will be looking to complete their first win against Yorkshire at the Oval since September 2001.
Bairstow, 25 not out in Yorkshire's second innings as he and Leaning (13 not out) put on a battling 40 in 16 overs, had strode in earlier at No 6 when Root was leg-before to Curran for 14 from the sixth ball of day three. He then hit 15 fours - many of them unforgettable strokes - as he took on the Surrey attack single-handedly.
Root's scalp was followed by those of Brook, Tim Bresnan and Josh Shaw as Curran - who had 2 for 15 overnight - shattered Yorkshire, who had resumed on 40 for 3. As he walked off the field at the lunch interval, Curran was presented with his county cap.
The teenager is the fourth youngest Surrey player to be capped, after Vivian Crawford in 1898, Donald Knight in 1912 and Waqar Younis in 1990, and when he took his sixth wicket of Yorkshire's first innings he also became the fourth youngest Surrey cricketer to take 100 first-class wickets, following Waqar, Martin Bicknell and Jack Crawford.
Bairstow attacked Surrey's quicker bowlers in breathtaking fashion. Particularly memorable were the pull for four off Jade Dernbach which took him to a 46-ball fifty, an early straight drive for four off Curran and then a rasping pull for yet another boundary which greeted Conor McKerr's introduction for the 31st over.
McKerr, the giant 20-year-old fast bowler who has made a good early impression in county cricket, went off after bowling just three overs for 16 runs with what looked like a side injury.
Left-armer Curran, not 20 until next month, sent back Root when he aimed to work to square leg, also had Brook caught behind for 17 and, in his second spell of the morning session, saw Bresnan snapped up at second slip for 1.
Leaning, having reached 20 in support of Bairstow in a sixth wicket stand of 67, was leg-before to Rikki Clarke, playing towards mid wicket, and England keeper-batsman Bairstow's only mistake in a morning of magnificent batsmanship was when, on 66, he got a leading edge trying to work a short ball from Dernbach towards mid on and saw the bowler get his right hand to a difficult caught and bowled chance but fail to cling on.
Clarke had Steven Patterson superbly held at gully, high to his left, by Ollie Pope for 5, and Bairstow's counter-punching defiance ended when he tried to force the persevering Dernbach and edged to slip. Curran then ended a bright, career-best 29 from Shaw to wrap up the innings.
Yorkshire, batting again 185 runs adrift, lost Alex Lees for 4 at the end of the fifth over when the left-hander pushed at Dernbach and edged to second slip, and it was 10 for 2 when Pujara drove loosely at his third ball and lost his middle stump to one from Curran that shaped back into him.