The 34-year-old playmaker, who nearly left the club in the summer amid a collapsed takeover, curled home the winner with 90 minutes on the clock to seal a third straight win for Doncaster.
In no way as emphatic as their previous two victories against Crawley and Yeovil, this was one built on patience, resolve and desire. For the first time this season, Rovers are into the top six.
With 16 games remaining they might not have the element of surprise that so many latecomers enjoy in the play-offs, but after what has been a largely inconsistent season, manager Paul Dickov is finally being rewarded with a level of performance that suggests they might be able to stay the course.
And this result, having trailed at half-time against an organised Crewe, showed they have plenty of character and stomach for the fight.
Fresh from scoring eight goals with none against in their previous two games, hopes were high this renewed potency would continue against Crewe, regardless of the visitors’ own impressive statistics which saw them arrive on the back of three straight wins.
The visitors were soon puncturing home expectations, George Ray bundling the ball home at the back post after Marcus Haber had flicked on an inswinging right-wing corner on eight minutes.
Crewe had speed on the break and nearly doubled their lead when Nicky Ajose found space on the left, but his shot was blocked by Jamie McCombe.
McCombe had a chance to level when a corner broke to him on the edge of the box, but he snatched at the shot.
Kyle Bennett proved a positive outlet for Rovers on the left, cutting in on one occasion to fizz in a drive that narrowly looped over the bar and struck the stanchion behind the goal.
Doncaster’s big man up front, Uche Ikpeazu, was a handful, forcing Ben Garratt into a smart save before Rovers were indebted to a double block from their own goalkeeper, Stephen Bywater, moments later, when he twice got his body in the way of efforts from Ajose before then thwarting Haber in similar fashion.
Crewe’s structure was frustrating Rovers, and after that initial burst of chances in response to Ray’s opener, the hosts found opportunities hard to come by.
They continued to dictate in the second half as Crewe began to retreat and should really have been level on 55 minutes when Reece Wabara picked out Nathan Tyson at the back post with a delightfully-flighted ball, but the striker could only head the chance straight into the grateful Garratt’s hands.
At the other end, Ajose found himself in a similar situation as his header drifted just wide of Bywater’s post.
Dickov’s men were getting closer every time they attacked and Ikpeazu, defying his bulk, swivelled quickly on the edge of the area and struck a post with a scuffed shot.
The next time they attacked, Rovers had their equaliser. McCombe headed Bennett’s free-kick back across goal where it was met by Ikpeazu, whose firm header was only parried by Garratt, and there was Dean Furman, on hand from a yard, to squeeze the ball home.
Furman nearly had a second, inadvertently so, when he got in the way of Wellens’s drive, but the deflection was not enough to deceive Garratt.
Curtis Main replaced Ikpeazu and almost scored a sumptuous second, meeting Wabara’s cross with a deft flick at the front post, which Garratt did brilliantly to beat away.
Main also tried his luck from range with a sweeping effort that was narrowly off target before Wellens arrived to save the day, sweeping the ball home with a measured right-foot shot.
Crewe carried little threat in the second half, retreating deeper and deeper in protection of the three points that would eventually evaporate.
Former Manchester City development player Abdul Razak – whose move was ratified last week after nearly a month waiting for the paperwork on his move from Greece to come through – made a late cameo off the bench for Doncaster.
Easy on the eye, if a little frustrating with his showboating, he showed he has the punch with a shot that struck the post deep into stoppage time that would have put a gloss on the scoreline.
Doncaster Rovers: Bywater, Wabara, Butler, McCombe, Stevens; Wellens, Keegan, Furman, Bennett (Razak 79); Tyson, Ikpeazu (Main 73). Unused substitutes: Marosi, Evina, Robinson, McCullough, Whitehouse.
Crewe Alexandra: Garratt, Turton, Davies, Tate, Ray, Leigh; Grant, Jones (Nolan 73), Ness; Haber, Ajose (Dalla Valle 73 (Cooper 82)). Unused substitutes: Inman, Baillie, Stewart, Etheridge.
Referee: D Sheldrake (Surrey).