It was enough to settle a game of few chances and keep Derby pinned to the bottom of the table, while the hosts kept themselves flying high among the frontrunners.
Rooney played the whole game but was unable to inspire his side to victory against a well-organised home defence.
Derby's four-man coaching team, including former Bristol player Liam Rosenior, who directed operations from the dugout, made three changes from the 2-0 home defeat by Barnsley, calling Andre Wisdom, Max Bird and Duane Holmes into a 4-2-3-1 formation.
Bristol, whose training ground only reopened on Thursday after a Covid-19 outbreak, were unchanged from their 1-0 victory at Cardiff last time out.
Five minutes later Marshall was almost left red-faced when robbed by Jamie Paterson, but the City player seemed more surprised than anyone and a poor touch allowed the goalkeeper to recover.
Both sides settled into playing neat passing football without an end product. The game was past the half hour mark when Semenyo forced a save from Marshall with a low drive.
Bristol had the first meaningful goal attempt of the second half as Semenyo's 59th minute was dealt with by Marshall at his near post. Seconds later Waghorn was just wide for Derby with a curling effort.
Semenyo headed wide from a Jack Hunt cross as both teams again attacked with promise. Holmes fired over for the visitors before Paterson wasted a good Bristol chance by shooting over from inside the box.
It was Diedhiou's introduction that reaped dividends. More changes followed for both sides, but while Derby threw men forward in the closing stages their finishing was not accurate enough to test Bentley.
Matt Clarke was wide with a header as the hosts soaked up late pressure to claim the points.