Non-league Grimsby deservedly held League Two Port Vale to earn themselves an FA Cup replay.
The Mariners started well and striker Manny Panther saw his shot cleared off the line while Michael Coulson forced a fine save from Stuart Tomlinson.
The hosts improved after the break and Louis Dodds saw a long-range effort swerve narrowly wide.
Dodds and substitute Sam Morsy both went close again but the Blue Square Bet Premier side held on.
VIEWS FROM THE DRESSING ROOM
Port Vale manager Micky Adams told BBC Radio Stoke:
"Part of our rehabilitation as a team is about taking small steps and the small step we've taken today is a clean sheet.
"We came close on numerous occasions, without actually having that bit of luck that you need in front of goal.
"Grimsby were well organised, they sat behind the ball and made it difficult for us, but I was pleased with our performance."
Grimsby Town joint-manager Paul Hurst told BBC Radio Humberside:
"Right from the first move of the game we played some great football.
"They put in a really good shift, we're proud of them. It feels a little bit like a win in the dressing room because I think they've just proved to themselves they can compete.
"What we ask of them now is can you do that consistently in the league, because if you do I don't think there's any doubt that we'll climb the league."
Live Text Commentary
Full Time The referee brings the game to a close.90:00 +3:15
Unfair challenge on Bradley Wood by Doug Loft results in a free kick. Indirect free kick taken by James McKeown.90:00 +1:40
Adam Yates produces a right-footed shot from close range which goes wide of the right-hand upright.89:45
Bradley Wood concedes a free kick for a foul on Robert Taylor. Sam Morsy crosses the ball from the free kick right-footed from left wing, clearance by Michael Coulson.87:51 Substitution
Substitution Serge Makofo joins the action as a substitute, replacing Liam Hearn.87:20
Outswinging corner taken by Gary Roberts from the right by-line, Tom Pope has a header from deep inside the six-yard box and clears the crossbar.86:59
Tom Pope produces a right-footed shot from inside the area that clears the crossbar.83:34
Free kick awarded for an unfair challenge on Doug Loft by Michael Coulson. Stuart Tomlinson takes the indirect free kick.81:36
Outswinging corner taken right-footed by Gary Roberts played to the near post, clearance made by Darran Kempson.77:56
Corner taken by Gary Roberts from the right by-line, Doug Loft has a header from inside the six-yard box and clears the crossbar.77:15
The official flags Michael Coulson offside. Free kick taken by Stuart Tomlinson.72:10 Substitution
Substitution (Port Vale) makes a substitution, with Sam Morsy coming on for Sean Rigg.70:32 Substitution
Substitution Frankie Artus on for Emmanuel Panther.69:58
Inswinging corner taken right-footed by Doug Loft played to the near post.66:46
Corner taken right-footed by Doug Loft to the near post.64:30
Shot by Doug Loft from 12 yards. Save by James McKeown.62:39
Corner taken right-footed by Michael Coulson, Sean Rigg manages to make a clearance.61:49 Substitution
Substitution Anthony Elding is brought on as a substitute for Rob Duffy.61:06
Inswinging corner taken right-footed by Doug Loft played to the near post, Darran Kempson manages to make a clearance.60:28
Emmanuel Panther fouled by Anthony Griffith, the ref awards a free kick. Conor Townsend takes the indirect free kick.
The referee blows for offside. Free kick taken by James McKeown.55:58
Effort on goal by Adam Yates from 12 yards. Save by James McKeown.55:25 Booking
Booking The referee books Bradley Wood for unsporting behaviour.51:21
Louis Dodds has an effort at goal from outside the area missing to the wide right of the goal.49:15
Corner taken by Doug Loft, clearance made by Bradley Wood.47:55
Liam Hearn takes a shot. Stuart Tomlinson makes a save.46:43
Free kick awarded for a foul by Doug Loft on Conor Townsend. Conor Townsend takes the indirect free kick.45:32
Indirect free kick taken by James McKeown.45:32 Booking
Booking Gary Roberts goes into the referee's book for unsporting behaviour.45:29
Gary Roberts gives away a free kick for an unfair challenge on Emmanuel Panther.45:01
The second half kicks off.45:00 +1:05 Half time
Half Time The match has reached half-time.43:58
The ball is sent over by Gary Roberts, save made by James McKeown.37:18 Booking
Booking Caution for Michael Coulson.36:46
Foul by Michael Coulson on Gary Roberts, free kick awarded. Free kick taken by Lee Collins.33:17
Corner taken right-footed by Michael Coulson from the left by-line, save made by Stuart Tomlinson.28:41
Inswinging corner taken by Craig Disley, clearance made by Louis Dodds.25:49
The referee blows for offside. James McKeown takes the free kick.23:40
Inswinging corner taken right-footed by Gary Roberts played to the near post, Darran Kempson makes a clearance.21:17
The ball is swung over by Adam Yates, Header from deep inside the area by Louis Dodds goes over the bar.19:03
Free kick awarded for a foul by Bradley Wood on Gary Roberts. Gary Roberts crosses the ball from the free kick right-footed from left wing, James McKeown makes a save.18:28
Inswinging corner taken right-footed by Gary Roberts from the left by-line to the near post, clearance made by Bradley Wood.17:06
Strike on goal comes in from Michael Coulson from the free kick, save made by Stuart Tomlinson.17:06 Booking
Booking Anthony Griffith receives a yellow card for unsporting behaviour.16:56
Rob Duffy fouled by Anthony Griffith, the ref awards a free kick.16:01
Shot by Michael Coulson from a long way out goes over the target.15:05
The referee blows for offside. Free kick taken by James McKeown.14:02
Anthony Griffith challenges Liam Hearn unfairly and gives away a free kick. Free kick crossed by Conor Townsend, save by Stuart Tomlinson.11:31
Corner from the left by-line taken by Doug Loft, clearance made by Darran Kempson.10:49
Rob Duffy gives away a free kick for an unfair challenge on Stuart Tomlinson. Free kick taken by Stuart Tomlinson.9:05
Anthony Griffith concedes a free kick for a foul on Rob Duffy. Conor Townsend takes the free kick, Shot from just outside the box by Andi Thanoj misses to the left of the target.8:29
Shot by Doug Loft from outside the box goes high over the target.7:20
Conor Townsend concedes a free kick for a foul on Tom Pope. Doug Loft takes the direct free kick.6:36
Corner taken by Doug Loft from the left by-line to the near post, Craig Disley makes a clearance.5:41
Free kick awarded for a foul by Gary Roberts on Andi Thanoj. Free kick taken by Andi Thanoj.1:29
The referee blows for offside against Sean Rigg. James McKeown takes the indirect free kick.0:26
Centre by Andi Thanoj, Michael Coulson takes a shot. Lee Collins makes a clearance.0:00
The match has kicked off.
Live data and text provided by our data suppliers