Tommy Rowe scored in first half stoppage time to give Rovers edge out Colchester United in a tricky test at the Keepmoat.
Rowe clipped home after John Marquis dummied a James Coppinger cross to give Rovers a platform heading into the second half and laid the foundations for a third consecutive league win.
It had been a far from comfortable afternoon for Rovers against a Colchester side who denied them any real opportunities to play their usual passing game.
And the visitors had a threatening edge as well and really should have got on the scoresheet.
Darren Ferguson made a single change to the side that beat Barnet the previous week. The injured Andy Williams was replaced by John Marquis, restored after serving a one match suspension.
The game began in rather cagey fashion with neither side seeing real sight of goal.
But Rovers settled the quicker and produced some decent possession play to begin to break down an alert Colchester outfit, who pressed well in midfield. It was an approach that succeeded in stifling Rovers, who were far from their usual selves.
Chances for both sides were few and far between, though the visitors had the more threatening attempts.
It took a fine save from Marko Marosi to keep out the first real effort when Kurtis Guthrie lashed a shot from 25 yards with 22 minutes gone.
A fine block from Andy Butler deflected a shot from Sammie Szmodics well wide from just inside the box. And just enough pressure was placed on the diminutive number ten to prevent him from heading home a cross from Kane Vincent-Young.
Rovers went straight up the other end and a James Coppinger drive from the edge of the box was blocked in the hosts' first real threat on the Colchester goal.
Colchester really should have been ahead on the stroke of half time. Chris Porter was in acres of space six yards out to meet a cross with a header but Marosi was even better placed to keep the ball out on his line.
It was a miss that was soon punished as Rovers brought what had been a frustrating half to a perfect end as they took the lead in added time.
Coppinger crossed low from the right and Marquis produced a superb dummy to allow the ball to run through to Blair who dinked a shot over Sam Walker to give Rovers the lead.
Rovers were inches away from doubling their advantage in the early stages of the second half.
Coppinger clipped a cross into the box, Marquis rose and flicked a header towards the far post but the ball dropped just wide.
Marosi kept out a decent header from Guthrie at the other end.
Ferguson threw on Harry Middleton and Mathieu Baudry to tighten Rovers up as the half wore on.
But they really should have been two goals up heading into the final quarter of the game.
Cedric Evina hammered a clearance from inside the Rovers box and Marquis had inexplicably been left on his own, played onside by the fact he was in his own half. Put in one on one, Marquis attempted to round the keeper and slot home, only for full back Richard Brindley to race back and clear off the line.
Moments later, Marosi rushed off his line to block a shot from the lively Szmodics.
Colchester pushed as expected in the later stages and should have been level when substitute Denny Johnstone raced onto a cross but flashed a header wide of the post.
Rovers had enough to hold on and cut the gap to top side Plymouth Argyle down to three points.
Rovers: Marosi, Mason, Wright (Baudry 70), Butler, Evina, Houghton, Blair, Rowe (Calder 57), Coppinger, Marquis, Mandeville (Middleton 71). Subs not used: Etheridge, Garratt, Beestin, Longbottom.
Colchester: Walker, Brindley, Eastman, Prosser, Wynter, Vincent-Young (Sembie-Ferris 56), Slater, Guthrie (Bonne 66), Wright, Szmodics, Porter (Johnstone 64). Subs not used: Bransgrove, Doyley, James, Kamara.
Referee: Sebastian Stockbridge (Tyne & Wear)
Attendance: 5,007 (225 away)