Two second-half Rochdale goals dented 10-man Port Vale's promotion push.
Tom Pope put the home side ahead, converting Rob Taylor's cross at the second attempt, before Pope's superb strike made it 2-0.
But the game changed when Vale were reduced to 10 men as Sam Morsy was red-carded for a late tackle.
Rochdale pulled a goal back through Bobby Grant's header and Andrew Tutte's long-range shot earned them an unlikely draw with three minutes remaining.
VIEW FROM THE DRESSING ROOM
Rochdale manager John Coleman told BBC Radio Manchester:
"Their two forwards were a handful all night because they were getting the ball into feet and bringing other players in.
"You think it's not going to be your night once they went 2-0 up, but then their lad put in a ridiculous challenge and got a red card.
"With 11 men, I don't think Port Vale were overly better than us. They were clinical when they had their opportunities.
"We tried to commit more men forward, we tried to go for it, and we possibly should have won it at the end."
Live Text Commentary
Full Time The match has reached full-time.90:00 +3:06 Booking
Booking Phil Edwards goes into the book for unsporting behaviour.90:00 +2:43
Tom Pope concedes a free kick for a foul on Andrew Tutte. Free kick taken by Andrew Tutte.89:08 Booking
Booking Tom Pope shown a yellow card.86:47
Jason Kennedy provided the assist for the goal.86:47 Goal scored
Goal! - Andrew Tutte - Port Vale 2 - 2 Rochdale Andrew Tutte finds the back of the net with a goal from just outside the area to the top right corner of the goal. Port Vale 2-2 Rochdale.86:34
Corner taken by Jason Kennedy from the left by-line to the near post,85:32
Unfair challenge on Tom Pope by Rhys Bennett results in a free kick. Direct free kick taken by Adam Yates.85:08 Substitution
Substitution Ray Putterill joins the action as a substitute, replacing Kevin McIntyre.81:59
Unfair challenge on Andrew Tutte by Tom Pope results in a free kick. Peter Cavanagh restarts play with the free kick.80:25
Direct free kick taken by Jennison Myrie-Williams.80:25 Booking
Booking Booking for Bobby Grant.80:13
Bobby Grant concedes a free kick for a foul on Jennison Myrie-Williams.78:40
Ashley Vincent is ruled offside. Jason Kennedy restarts play with the free kick.74:32
Ryan Edwards concedes a free kick for a foul on Tom Pope. Ryan Burge takes the direct free kick.72:10 Substitution
Substitution Darren Murphy goes off and Kingsley James comes on.72:10
The assist for the goal came from Jason Kennedy.72:10 Goal scored
Goal! - Bobby Grant - Port Vale 2 - 1 Rochdale Bobby Grant finds the net with a headed goal from close range. Port Vale 2-1 Rochdale.70:10
Ashley Vincent produces a right-footed shot from just outside the area that goes harmlessly over the bar.67:16 Substitution
Substitution Ben Williamson goes off and Darren Murphy comes on.
Dismissal Sam Morsy shown a red card for violent conduct.66:47
Unfair challenge on Jason Kennedy by Sam Morsy results in a free kick.65:59
Kevin McIntyre produces a left-footed shot from the edge of the box and misses to the left of the target.64:36
Andrew Tutte takes a shot from inside the box clearing the bar.61:01
Assist on the goal came from Ben Williamson.61:01 Goal scored
Goal! - Tom Pope - Port Vale 2 - 0 Rochdale Tom Pope gets on the score sheet with a goal from inside the penalty area to the top left corner of the goal. Port Vale 2-0 Rochdale.60:38
Effort on goal by Ben Williamson from inside the penalty area goes harmlessly over the bar.56:57 Substitution
Substitution Ashley Grimes replaces Dele Adebola.53:31
The ball is sent over by Adam Yates, Jennison Myrie-Williams has a header from deep inside the six-yard box and clears the crossbar.50:28
Adam Yates challenges Jason Kennedy unfairly and gives away a free kick. The free kick is delivered right-footed by Jason Kennedy from left wing.49:13
Ben Williamson produces a left-footed shot from deep inside the six-yard box which goes wide of the right-hand upright.47:56
Unfair challenge on Ben Williamson by Rhys Bennett results in a free kick. Ryan Burge delivers the ball from the free kick left-footed from right wing, save made by Josh Lillis.47:05
Jennison Myrie-Williams has an effort at goal from just inside the box that misses to the right of the target.45:43
Ryan Edwards fouled by Tom Pope, the ref awards a free kick. Josh Lillis takes the direct free kick.45:01
The second half has started.45:00 +4:03 Half time
Half Time The half-time whistle blows.45:00 +1:00
Bobby Grant takes a shot.42:23
Dele Adebola takes a shot. Chris Neal makes a save.37:59
Unfair challenge on Jennison Myrie-Williams by Rhys Bennett results in a free kick. Ryan Burge crosses the ball from the free kick left-footed from right wing, clearance by Peter Cavanagh.37:02
Free kick awarded for an unfair challenge on Ryan Edwards by Tom Pope. Free kick taken by Josh Lillis.36:05
George Donnelly takes a shot. Save by Chris Neal.34:52
Ben Williamson takes a shot. Save by Josh Lillis.32:04
The referee blows for offside against Ashley Vincent. Josh Lillis restarts play with the free kick.31:18 Booking
Booking Kevin McIntyre goes into the book for unsporting behaviour.26:51
Robert Taylor provided the assist for the goal.26:51 Goal scored
Goal! - Tom Pope - Port Vale 1 - 0 Rochdale Tom Pope gets on the score sheet with a goal from inside the six-yard box to the bottom left corner of the goal. Port Vale 1-0 Rochdale.24:43
Indirect free kick taken by Chris Neal.24:43 Substitution
Substitution Robert Taylor joins the action as a substitute, replacing Doug Loft.24:43
Dele Adebola is caught offside.22:59
Clayton McDonald has an effort at goal from outside the area which goes wide right of the goal.22:29
The ball is delivered by Adam Yates, Ryan Edwards makes a clearance.19:39
Ryan Burge takes the inswinging corner, Ashley Vincent takes a shot. Josh Lillis makes a save.17:25
Kevin McIntyre takes the chance to get an effort at goal. Save made by Chris Neal.16:25
Josh Lillis fouled by Tom Pope, the ref awards a free kick. Josh Lillis takes the free kick.15:21
The assistant referee signals for offside against Tom Pope. Indirect free kick taken by Josh Lillis.13:57
Unfair challenge on Tom Pope by Ryan Edwards results in a free kick. Clayton McDonald restarts play with the free kick.11:06
Free kick awarded for a foul by Ashley Vincent on Phil Edwards. Jason Kennedy takes the free kick, Centre by Doug Loft, clearance made by Clayton McDonald.8:25
Unfair challenge on Ashley Vincent by Phil Edwards results in a free kick. Doug Loft restarts play with the free kick.7:25
Ryan Burge concedes a free kick for a foul on Jason Kennedy. The free kick is delivered right-footed by Phil Edwards from own half, clearance made by Clayton McDonald.6:19
Tom Pope fouled by Ryan Edwards, the ref awards a free kick. Sam Morsy takes the free kick.5:11
Foul by Jennison Myrie-Williams on Rhys Bennett, free kick awarded. Indirect free kick taken by Rhys Bennett.3:54
Ryan Edwards fouled by Tom Pope, the ref awards a free kick. Josh Lillis takes the free kick.1:40
Shot by Ashley Vincent from 20 yards. Josh Lillis makes a save.0:00
The game begins.
Live data and text provided by our data suppliers