West Ham came from behind to beat Leicester and take their battle with Southampton for automatic promotion to the Premier League to the final day.
The Foxes led when Ben Marshall's cross was headed home by Jermaine Beckford but five minutes later Winston Reid prodded home a leveller from Matty Taylor's centre.
And Jack Collison scored the Hammers' winner, firing home from 25 yards.
West Ham are two points behind the Saints going into the final day.
The Hammers need to beat Hull City on the final day and hope that Southampton lose to relegated Coventry. If the Saints draw, West Ham would need to win by three or four - depending on how many goals the Saints score - to clinch promotion.
West Ham started the brighter and Ricardo Vaz Te almost got onto the end of Mark Noble's through ball but it ran just too far and into Kasper Schmeichel's hands in the Leicester goal.
The Foxes goalkeeper then saved well down low from Collison's shot after Sol Bamba was caught dawdling by Carlton Cole.
Noble's free-kick was headed wide by Cole, who was then only denied by a last-ditch Wes Morgan challenge after chasing onto Noble's 60-yard ball.
Final day permutations
- Southampton will be promoted if they beat Coventry.
- If they lose, West Ham need a win against Hull to secure promotion.
- If they draw, West Ham will be promoted if they beat Hull by a four-goal margin. A two-goal margin or less will see Saints promoted, while a three-goal margin will see promotion go down to goals scored, then head-to-head record.
Leicester showed they would give the Hammers a game, despite having little to play for, and Beckford headed wide from Lloyd Dyer's cross.
At the other end, Nolan flashed a half-volley wide with the outside of his boot and moments later his side fell behind. Marshall won the ball from Taylor on the right-hand side and floated it into the centre where Beckford made amends for his previous miss.
Leicester's lead was shortlived though. Noble rolled the ball to Taylor, whose wonderful low cross was converted from close range by Reid.
And with the momentum all West Ham's, Vaz Te had a powerful effort deflected wide by Morgan, Tomkins headed past the post and Vaz Te flashed a free-kick wide.
After the break, West Ham continued to chase the goal they needed to keep their automatic promotion dreams alive.
Soon after the restart, Noble hit a brilliant shot from the edge of box that went just wide and then fired well over after Gary O'Neil found him unmarked from a similar distance.
And their persistence paid off when O'Neil's shot was cleared by the Leicester defence but only as far as Collison, who smashed the ball home. Schmeichel got a hand to the effort but could not keep it out.
Moments later Collison could have killed the game off but his shot was deflected over by Bamba.
The Hammers continued to push for a third goal to seal the game and boost their goal difference and Tomkins headed wide, while Vaz Te and Collison failed to capitalise on a great chance to shoot in the box.
Leicester's Marshall had an effort from 25 yards out that was easily handed by Green. And minutes later, perhaps sensing that the game was not yet won, Sam Allardyce brought on defender Danny Collins for striker Cole and the Hammers saw the game out.
After Nolan missed a chance to add a late third, they almost paid the ultimate price with Green having to save Morgan's last-gasp header.
West Ham boss Sam Allardyce: "I think that under the pressure and under the circumstances it was a fantastic victory, especially as we had to come from behind - and Jack Collison's winning goal was a cracker.
"It is a good night and we have stayed in the race, which is what we wanted, and now we have got to do our job and hope that Southampton get the jitters and Coventry can do us a favour.
"The pressure on them will be enormous to finish off the fantastic season they have had and hopefully that will put them off their game.
"The odds are Southampton will win the game - that is what everyone expects - but football is a strange game and any team on a day can cause an upset, as we have seen all season."
Leicester boss Nigel Pearson: "It is a disappointing way to round off the home campaign. Their clinical finishing was the difference but in the end they had too much for us and I have no complaints.
"Richie Wellens will have a scan on Tuesday. It doesn't look promising at the moment. And likewise with Andy King, who has a foot injury that is maybe similar to his original injury but hopefully isn't as bad.
"They are things we could do without at this stage of the season, certainly with our numbers being short in midfield."
Live Text Commentary
Full Time The referee brings the game to a close.90:00 +4:08
Wes Morgan takes a shot. Robert Green makes a save.90:00 +3:45
Ricardo Vaz Te is ruled offside. Indirect free kick taken by Kasper Schmeichel.90:00 +2:47
A cross is delivered by Jermaine Beckford.90:00 +2:17
Kevin Nolan takes a shot. Save by Kasper Schmeichel.89:10
Effort on goal by Daniel Drinkwater from just inside the area clears the bar.87:01
Mark Noble takes a short corner.87:01 Substitution
Substitution Jack Collison goes off and Henri Lansbury comes on.86:30
The ball is swung over by Matthew Taylor, clearance by Sean St. Ledger.80:28 Substitution
Substitution (West Ham) makes a substitution, with Danny Collins coming on for Carlton Cole.79:34
Ben Marshall takes a shot. Save by Robert Green.77:20
Souleymane Bamba concedes a free kick for a foul on Winston Reid. Direct free kick taken by Robert Green.76:40
Ben Marshall sends in a cross, Robert Green makes a save.75:42 Substitution
Substitution Julien Faubert comes on in place of Guy Demel.71:03
Carlton Cole is ruled offside. Kasper Schmeichel takes the free kick.70:05
Free kick awarded for a foul by Martyn Waghorn on Mark Noble. Robert Green restarts play with the free kick.69:14
Carlton Cole takes a shot. Clearance made by Souleymane Bamba.68:26
Corner taken left-footed by Matthew Taylor, James Tomkins takes a shot. Blocked by Wes Morgan.67:19
Inswinging corner taken right-footed by Ben Marshall played to the near post, Carlton Cole manages to make a clearance.67:12
Ben Marshall produces a cross, Guy Demel manages to make a clearance.
Corner taken right-footed by Ben Marshall, save by Robert Green.64:04 Substitution
Substitution Martyn Waghorn replaces David Nugent.63:01
Inswinging corner taken by Matthew Taylor from the right by-line.62:13
Ben Marshall takes a outswinging corner from the right by-line to the near post, clearance made by Kevin Nolan.60:04
Corner taken by Mark Noble from the left by-line, Header on goal by James Tomkins from inside the box goes harmlessly over the target.59:50
Jack Collison takes a shot. Blocked by Wes Morgan.57:46
Assist on the goal came from Gary O'Neil.57:46 Goal scored
Goal! - Jack Collison - Leicester 1 - 2 West Ham Jack Collison grabs a goal from outside the area to the bottom left corner of the goal. Leicester 1-2 West Ham.56:14
Shot from just outside the box by Kevin Nolan goes over the bar.52:35
Souleymane Bamba has an effort at goal from outside the box which goes wide right of the target.48:54
Corner taken by Mark Noble.46:50
Mark Noble has an effort at goal from just inside the box that misses to the right of the target.46:14
Inswinging corner taken right-footed by Mark Noble from the left by-line.45:01
The referee gets the second half started.45:01 Substitution
Substitution Sean St. Ledger replaces Andy King.45:00 +3:00 Half time
Half Time The whistle is blown to end the first half.45:00 +2:37
Carlton Cole delivers the ball, Kasper Schmeichel makes a save.45:00 +0:40
Daniel Drinkwater challenges Jack Collison unfairly and gives away a free kick. Strike comes in from Ricardo Vaz Te from the free kick.44:26
Inswinging corner taken left-footed by Matthew Taylor, James Tomkins has a headed effort at goal from close range which goes wide of the left-hand post.41:15
Corner taken by Ben Marshall from the left by-line, Foul by Lee Peltier on Kevin Nolan, free kick awarded. Robert Green restarts play with the free kick.39:57
Inswinging corner taken by Mark Noble from the left by-line played to the near post, Kasper Schmeichel makes a save.39:41
Ricardo Vaz Te takes a shot. Wes Morgan gets a block in.38:16
The assist for the goal came from Matthew Taylor.38:16 Goal scored
Goal! - Winston Reid - Leicester 1 - 1 West Ham Goal scored by Winston Reid from inside the six-yard box to the bottom left corner of the goal. Leicester 1-1 West Ham.38:10
Matthew Taylor sends in a cross,37:29
Inswinging corner taken right-footed by Mark Noble, clearance by Andy King.33:20
Assist by Ben Marshall.33:20 Goal scored
Goal! - Jermaine Beckford - Leicester 1 - 0 West Ham Jermaine Beckford finds the back of the net with a headed goal from inside the six-yard box. Leicester 1-0 West Ham.33:16
Ben Marshall sends in a cross,29:41
Daniel Drinkwater takes the direct free kick.29:41 Booking
Booking Gary O'Neil goes into the book for unsporting behaviour.29:35
Gary O'Neil concedes a free kick for a foul on Lloyd Dyer.29:03
Jack Collison delivers the ball, Lee Peltier manages to make a clearance.27:58
Effort from the edge of the area by Kevin Nolan goes wide of the right-hand post.27:52
Guy Demel delivers the ball.27:02
Jack Collison takes a shot. Save made by Kasper Schmeichel.24:41
Lloyd Dyer produces a cross, Jermaine Beckford has a headed effort at goal from close in which goes wide left of the target.21:52 Substitution
Substitution Richie Wellens leaves the field to be replaced by Lloyd Dyer.20:19
The ball is crossed by Daniel Drinkwater, James Tomkins manages to make a clearance.15:47
Foul by Kevin Nolan on Richie Wellens, free kick awarded. Paul Konchesky takes the free kick.13:37
Carlton Cole fouled by Wes Morgan, the ref awards a free kick. Mark Noble crosses the ball, Header from close in by Carlton Cole misses to the right of the target.11:25
Wes Morgan is caught offside. Free kick taken by Guy Demel.10:44
Matthew Taylor concedes a free kick for a foul on David Nugent. Free kick crossed by Ben Marshall, Winston Reid manages to make a clearance.8:46
Paul Konchesky crosses the ball, save made by Robert Green.5:02
Jack Collison takes a shot. Save by Kasper Schmeichel.0:00
The referee gets the game started.
Live data and text provided by our data suppliers