But the resurgent Millers weathered an early City storm and went in front just seconds after the blow of losing midfielder Paul McLaren in the 26th minute.
Six minutes from the break Shaw netted a superb predator's goal when he forced his way past defender Liam Fontaine - City claiming he used a hand - and crashed the ball past keeper Adriano Basso from the edge of the box.
It could have been worse for Bristol as Shaw also saw a superb half volley saved by Basso before Lee Williamson also tested the keeper with a stinging shot.
City had a handful of chances, but Steve Brooker, Dave Cotterill and Scott Murray failed to make the most of them.
Bristol should have pulled one back five minutes later when Brooker blasted a 15-yard effort straight at keeper Gary Montgomery, while they hit the net in a late surge as Cole Skuse pounced on a loose ball in the box following Montgomery's save from Mark McCammon.