With an hour gone, Doncaster led 12-10 – before one of Bristol’s three British & Irish Lions, Dwayne Peel, scored from close range to put the Greene King IPA Championship leaders in front.
Until that point, it had looked as if Dougie Flockhart’s four penalties might propel Clive Griffiths’s side to victory.
But Bristol kept their 100 per cent record in check thanks to Peel’s try, before Olly Robinson – the son of the director of rugby – made the victory safe late on.
Goal-kicker Flockhart nailed four from four off the tee in the first half to give his side the edge after Bristol’s Max Crumpton had scored the game’s first try.
Flockhart opened the scoring in the seventh minute when Bristol were penalised for not moving away at the tackle – but the hosts replied when Ian Evans fed Crumpton, who slid in to score.
Adrian Jarvis converted to give Bristol a 7-3 lead – but Flockhart cut the deficit to a point when the home side gave away a penalty after losing a line-out.
Jarvis landed a penalty to make it 10-6 when referee Simon Harding brought play back after Darren Hudson had been held up over the line – but Flockhart soon found the target again to make it 10-9, before kicking his side into the lead following a late tackle from Ryan Jones.
The Bristol backlash arrived but, through the hosts’ wastefulness and Doncaster’s resilience in defence, they could not force their way over the line despite four close-range line-outs.
Three of those line-outs were defended with 14 men, after Latu Makaafi saw yellow for failing to retreat 10 metres at a penalty and then blocking Peel.
It took Bristol until the 61st minute to break down Doncaster. By that point, the Knights had again been reduced to 14 men, with Flockhart yellow-carded for illegally thwarting Auguy Slowik’s purposeful break.
Bristol had a couple of attempts at driving the Knights back and, on the second, Peel stretched out an arm to score, with Jarvis converting to make it 17-12.
Jarvis missed a 30-metre penalty in front of the posts, but Robinson made the points safe for the hosts when they drove the Knights back more than 20 metres in the dying minutes.
Bristol: A Slowik; J Wallace, G Maule, B Mosses (L Eves 76), D Hudson; A Jarvis (N Robinson 78), D Peel (capt; L Baldwin 78); K Traynor, M Crumpton (R Lawrence 50), G Cortes (J Hall 53), I Evans, M Sorenson (G Townson 66), N Koster (M Eadie 66), O Robinson (M Eadie 59-66), R Jones.
Doncaster: P Jarvis; D Flockhart, S Hihetah, B Armitage, T Lewis (J O’Donnell 71); P Roberts (J Lennard 71), B Bravo (J Maplesden 60-64 & 79); T Davies (R List 25), B Hunter (J Bergamanas 79), C Quigley, M Challinor, J Phelan, L Makaafi (W Foden 80), M Hills (capt), P Eggleshaw (G Kenworthy 40-41).
Referee: S Harding (RFU).