Emmanuel-Thomas was on the scoresheet twice, as was Billy Sharp, for the visitors while Bradley Orr scored the City goals before rounding off the scoring with an own-goal.
Doncaster took the lead after just two minutes when Sharp wandered through the defence and slid the ball across the goal for on-loan Arsenal midfielder Emmanuel-Thomas to slot the ball home.
The visitors looked impressive early on and John Oster had a fierce shot blocked by Lewin Nyatanga.
Bristol City were back on level terms after nine minutes when Jamal Campbell-Ryce's cross from the left was converted by Orr from close range.
Parity lasted just three minutes though with Rovers taking the lead from their next attack.
James Coppinger ran down the right before chipping the ball into the box for Sharp to control and hammer into the bottom corner.
In what was turning out to be a remarkable opening 15 minutes the hosts again drew level through Orr.
Campbell-Ryce was again the provider, this time from the right, as his first-time cross was met by Orr at the far post.
City could have taken the lead after 21 minutes when Nicky Maynard volleyed the ball against the crossbar from the edge of the area as Doncaster goalkeeper Neil Sullivan watched on.
Robins goalkeeper Dean Gerken made two brilliant saves in quick succession. He saved a Coppinger attempt with his feet and then pushed Gareth Roberts' shot past the post.
Sharp then added his second after 34 minutes when he ran on to Emmanuel-Thomas' precise through ball and drilled the ball into the bottom corner.
Doncaster added a fourth two minutes before the break when Coppinger's corner found Emmanuel-Thomas at the back post. The 19-year-old took a touch before drilling the ball through the legs of Gerken.
Campbell-Ryce tried to get the Robins back in the game with just 19 seconds of the second half gone when he drove forward but his shot drifted wide of the upright.
Sullivan made a fine save from an Orr volley but despite the hosts' pressure, Doncaster extended their lead with a fortunate strike after 61 minutes. Oster crossed the ball from the right and Orr stuck out a leg and diverted the ball past his own goalkeeper.
With 14 minutes to play, Coppinger could have got his name on the scoresheet but his left-footed drive went wide of the upright as the visitors continued to stream forward.
Emmanuel-Thomas could have had a hat-trick in the closing stages but he curled an effort wide.