An injury-time strike from David Syers saw Doncaster complete a remarkable comeback and upset Championship side Hull City in the Capital One Cup.
The visitors led inside a minute when Aaron McLean slotted home and Jay Simpson added a second soon after.
Rovers got back in it through Syers' tremendous dipping 25-yard volley.
A Rob Jones header levelled the scores and Paul McKenna was sent off for the Tigers for violent conduct before Syers poked home a dramatic winner.
Steve Bruce could scarcely have wished for a better start for his Hull side.
McLean made the most of lax defending from League One Doncaster to turn on the spot and fire into the bottom corner after only 35 seconds and Simpson made it 2-0 on 10 minutes, sliding the ball home after Tom Cairney's free-kick rebounded off the crossbar.
The hosts were back in it before the break thanks to a superb strike from Syers, the former Bradford man sending a stunning 25-yarder past Hull keeper Ben Amos after a long ball was headed into his path.
With the hosts growing in confidence, skipper Jones grabbed the equaliser with a deft header from Tommy Spurr's lofted cross before McKenna was sent off for violent conduct after an off-the-ball incident with Jones.
The league games between the sides had both finished level last season and this tie looked destined for extra-time before Syers crashed home from James Coppinger's low centre.
There was still time for Hull sub Alex Bruce to send a header into the side-netting but Doncaster held out for a superb victory.
VIEWS FROM THE DRESSING ROOMS
Hull City manager Steve Bruce told BBC Radio Humberside:
"For 35-40 minutes I don't think they have had a kick at the ball. We're 2-0 up, they get a goal and you have to say it's a wonder goal from all of 30 yards on the volley, and it's got them back in the cup tie.
"But the game for me has gone on two decisions - the horror tackle on [Tom] Cairney, an absolute horror tackle, the kid could be out for months [with a knee injury], and the referee doesn't even book the guy.
"Then the referee then of course sends off Paul McKenna, I've got no complaints about that. For me that sums up the cup tie.
"Somebody of Paul McKenna's experience knows better than to kick out like that. With 5-10 minutes to go gives them the momentum. Those crazy decisions, one in the first half and Paul's silliness, have cost us the game."
Full Time The referee blows his whistle to end the game.
The assist for the goal came from James Coppinger. James Coppinger concedes a free kick for a foul on Joe Dudgeon. Cameron Stewart delivers the ball, Header from deep inside the area by Jay Simpson goes harmlessly over the crossbar.
90:00 +1:17 Goal scored
Goal! - David Syers - Doncaster 3 - 2 Hull David Syers gets on the score sheet with a goal from close in to the bottom left corner of the goal. Doncaster 3-2 Hull.
A cross is delivered by David Cotterill, clearance by Alex Bruce. Effort from inside the penalty area by Jay Simpson bounces off the post. The official flags Billy Paynter offside. Ben Amos takes the free kick. Centre by James Coppinger,
Shot by Corry Evans from 18 yards. Save by Gary Woods.
Ben Amos takes the free kick.
Substitution Abdoulaye Faye goes off and Alex Bruce comes on.
Free kick awarded for an unfair challenge on Ben Amos by David Syers.
David Cotterill takes a outswinging corner from the left by-line to the near post, Corry Evans manages to make a clearance.
David Cotterill takes a shot. Ben Amos makes a save. Corner taken by James Coppinger, Headed effort from deep inside the penalty area by David Syers goes harmlessly over the crossbar.
Booking The referee books Rob Jones for unsporting behaviour.
Dismissal Red card for Paul McKenna.
Tommy Spurr concedes a free kick for a foul on Corry Evans. Direct free kick taken by Corry Evans. Sone Aluko takes a shot. Save made by Gary Woods.
Substitution Sone Aluko on for Aaron Mclean.
Header from deep inside the penalty area by Aaron Mclean goes harmlessly over the crossbar.
Joe Dudgeon gives away a free kick for an unfair challenge on Jamie McCombe. James Husband takes the free kick.
Billy Paynter fouled by Andy Dawson, the ref awards a free kick. Paul Keegan restarts play with the free kick.
Free kick awarded for an unfair challenge on James Chester by Rob Jones. Free kick taken by Ben Amos.
Substitution Billy Paynter is brought on as a substitute for Robbie Blake.
Unfair challenge on Jamie McCombe by Aaron Mclean results in a free kick. Rob Jones takes the free kick. Aaron Mclean takes a shot. Save by Gary Woods. Corner taken short by Paul McKenna.
Free kick awarded for a foul by James Husband on Joe Dudgeon. Free kick taken by Ben Amos.
Unfair challenge on Seyi Olofinjana by Paul Keegan results in a free kick. Paul McKenna restarts play with the free kick.
David Syers is ruled offside. Indirect free kick taken by James Chester.
Substitution David Cotterill replaces Paul Quinn.
Tommy Spurr sends in a cross,
The assist for the goal came from Tommy Spurr. Corner taken by James Coppinger from the right by-line, Aaron Mclean makes a clearance.
56:39 Goal scored
Goal! - Rob Jones - Doncaster 2 - 2 Hull Rob Jones scores a headed goal from inside the penalty box. Doncaster 2-2 Hull.
Corner taken by James Coppinger from the right by-line, clearance made by Abdoulaye Faye.
Abdoulaye Faye takes the free kick.
Booking Paul Keegan is cautioned by the ref for unsporting behaviour.
Free kick awarded for an unfair challenge on Paul McKenna by Paul Keegan.
Inswinging corner taken right-footed by James Coppinger, clearance made by Andy Dawson.
The second half has started.
45:00 +3:20 Half time
Half Time The ref blows to end the first period.
Effort from close in by Corry Evans goes wide left of the target.
Free kick awarded for an unfair challenge on Corry Evans by Paul Keegan. Direct free kick taken by Andy Dawson. Jay Simpson has an effort at goal from 35 yards. Save by Gary Woods. Inswinging corner taken by Corry Evans from the left by-line. Jay Simpson has an effort at goal. Save by Gary Woods. A cross is delivered by James Husband, save by Ben Amos.
Corner taken by Corry Evans.
Aaron Mclean is flagged offside by the assistant referee. Rob Jones restarts play with the free kick.
Foul by James Harper on Paul McKenna, free kick awarded. Paul McKenna restarts play with the free kick.
Aaron Mclean challenges James Husband unfairly and gives away a free kick. Direct free kick taken by Tommy Spurr.
Substitution Paul McKenna replaces Tom Cairney.
The ball is delivered by Cameron Stewart, Header by Jay Simpson from deep inside the penalty area misses to the left of the goal.
James Coppinger provided the assist for the goal.
29:37 Goal scored
Goal! - David Syers - Doncaster 1 - 2 Hull David Syers scores a goal from outside the penalty area to the bottom right corner of the goal. Doncaster 1-2 Hull.
Corner taken by Corry Evans, clearance by James Harper.
Tom Cairney takes a inswinging corner from the right by-line to the near post, clearance by James Husband.
Free kick awarded for an unfair challenge on Aaron Mclean by Tommy Spurr. Corry Evans takes the direct free kick.
James Coppinger sends in a cross.
Assist by Tom Cairney.
9:37 Goal scored
Goal! - Jay Simpson - Doncaster 0 - 2 Hull Jay Simpson fires in a goal from inside the area to the bottom right corner of the goal. Doncaster 0-2 Hull.
Foul by James Harper on Jay Simpson, free kick awarded. Direct effort from the free kick comes in from Tom Cairney,
The ball is sent over by Tom Cairney, save by Gary Woods.
The assist for the goal came from Tom Cairney.
0:32 Goal scored
Goal! - Aaron Mclean - Doncaster 0 - 1 Hull A goal is scored by Aaron Mclean from deep inside the penalty area to the bottom left corner of the goal. Doncaster 0-1 Hull.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.