Walsall moved back into the League One automatic promotion places with a hard-earned win at Doncaster.
The hosts enjoyed the better of the first half, with Aaron Taylor Sinclair rattling the bar and top-scorer Andy Williams firing narrowly wide.
But the Saddlers improved after the break, with Sam Mantom’s low drive and Andy Taylor’s deflected effort giving them a two-goal lead.
Substitute Liam Mandeville’s late curler handed Rovers a lifeline but Walsall held on to secure victory and climb up to second in League One.
Saddlers head coach Sean O’Driscoll, who was facing his former club for the first time, made four changes to his side’s starting XI.
Craig MacGillivray came in for the injured Neil Etheridge, while Milan Lalkovic replaced Rico Henry, who dropped to the bench.
The game’s first meaningful attempt fell to Doncaster on nine minutes, when James Coppinger’s deep free-kick was cleared only as far as Cedric Evans, who volleyed well wide.
Walsall responded with midfielder Sam Mantom twice trying his luck from distance.
First, he received a pass from Romaine Sawyers and shifted the ball on to his left foot before curling over from 25 yards.
Moments later, Mantom fired straight at home keeper Chris Neal from Tom Bradshaw’s intelligent cut back.
Darren Ferguson’s Doncaster had lost three of their previous four league and cup home games but had a great chance to take the lead on 27 minutes.
Coppinger’s corner was inadvertently flicked on by James O’Connor to the unmarked Aaron Taylor-Sinclair, who clipped the bar with a close-range volley.
And Rovers went close again moments later.
Doncaster’s 14-goal top scorer Andy Williams outmuscled Paul Downing before curling a right-footed effort inches wide of the far post from eight yards.
Against the run of play, Milan Lalkovic curled a well-struck 25-yard free-kick into the arms of Neal.
The home side, though, were bossing proceedings and looking particularly dangerous from set pieces.
Harry Middleton steered a near-post drive wide after Coppinger’s delivery was only half cleared, and Paul Keegan’s 20-yard free-kick struck the wall.
HALF-TIME: DONCASTER 0-0 WALSALL
Walsall started the second period with greater urgency and signalled their attack intent from the outset.
On 51 minutes, Lalkovic delivered a left-wing corner to the far post, where a combination of Paul Downing and Taylor-Sinclair turned the ball onto the bar.
Shortly after, home custodian Neal was called into action as he held Lalkovic’s header from Forde’s floated cross.
And Walsall’s improved second-half showing was rewarded with the game’s opening goal just past the hour-mark.
Mantom showed great determination to bundle his way past a defender before arrowing a rasping left-footed drive into the bottom corner from 20 yards.
It was a sweet strike from the midfielder, who has now scored five goals this season – all away from home.
Four minutes later the Saddlers doubled their advantage, after catching Doncaster cold with a fine piece of invention.
Lalkovic and Sawyers’ short-corner routine bamboozled the home defence, as the latter glided past two men along the byline and crossed low into the area.
The ball ricocheted favourably for Taylor, ten yards out, to fire a first-time right-footed drive past Neal via a deflection.
Full of confidence and well in the ascendancy, Walsall looked to extend their lead but Bradshaw’s deflected strike was gathered by Neal.
Walsall appeared in complete control but with nine minute remaining, Doncaster gave themselves renewed home.
Mandeville collected possession 25 yards from goal, worked the ball on to his right foot and curled a precise low shot beyond MacGillivray.
The momentum was now with Rovers, who threw caution to the wind in their pursuit for a late leveller.
Goalscorer Mandeville went close with a firm, angled strike from inside the area but MacGillivray got down well to parry.
Middleton then blazed well over with Doncaster’s last throw of the dice in stoppage time, as Walsall held on for a crucial win.
FULL-TIME: DONCASTER 1-2 WALSALL
MacGillivray, Demetriou, O’Connor, Downing, Taylor, Chambers, Mantom, Forde, Sawyers, Lalkovic (Henry 75’), Bradshaw.
Subs not used: Roberts, Preston, Morris, Cook, Kinsella, Morris.
5,056 (309 Walsall supporters).