Paul Heffernan fired Doncaster Rovers back into second place in League One with a third minute winner at the Memorial Stadium.
The striker hammered the ball past Steve Phillips from 12 yards after James Coppinger had supplied the pass just inside the box.
Doncaster went on to deserve their win, although they had to weather a period of second-half pressure from the home side, whose finishing let them down.
The tone of the game was set in the opening ten minutes when Bristol missed two chances and Heffernan gave them a lesson in how to hit the back of the net.
Both sides created chances after that and it was Doncaster goalkeeper Neil Sullivan, who made the best first half save, spreading himself to keep out a close-range shot from Andy Williams in injury time.
The visitors started the second half brightly and Phillips had to parry a fierce shot from Coppinger on 50 minutes.
Bristol continued to show promise with their build-ups, but it was a different story inside the penalty area where Doncaster defenders were usually first to the ball.
The visitors should have made it 2-0 on 82 minutes when Mark McCammon rose unmarked to meet a right-wing cross, but his downward header was smothered on the line by Phillips.
The Bristol goalkeeper found himself pushed forward for two injury-time set-pieces, but there was no way through a well-organised Doncaster rearguard.
It wasn't the result the home team wanted ahead of Sunday's big FA Cup six th round clash with West Bromwich Albion, but there was no shortage of application and they could take heart from losing to impressive opponents.
There were eight bookings from busy referee Clive Penton, who managed to upset both camps with some strange decisions.
It was never a dirty game and both teams did their best to pass the ball slickly on the notorious Memorial Stadium playing surface.
Doncaster lost full-back Stephen Roberts to injury at half-time, but reorganised well with Mark Wilson coming on in midfield and Paul Green dropping into defence.