Hull City missed the chance to wrap up automatic promotion to the Premier League as they were beaten by a struggling Barnsley side who boosted their Championship survival hopes.
Victory for the Tykes was enough to lift them out of the relegation zone, while Hull will have to beat Cardiff in their final game to seal promotion.
Jacob Mellis fired Barnsley into an early lead with a sweet strike.
- Three points for Barnsley completed a hat-trick of home wins against top-four clubs
Chris O'Grady doubled their lead after 50 minutes with a low effort.
With Peterborough also winning it means Barnsley remain in the bottom three on goal difference. David Flitcroft's side must grab a point or win against Huddersfield to stand a chance of securing safety.
Steve Bruce's team have not scored in three matches now and only have a one-point advantage over third-placed Watford going into the final round of fixtures next Saturday.
The Tigers will need to defeat champions Cardiff at home to ensure their Premier League return after three seasons in the second tier.
Barnsley were handed the perfect start by former Chelsea player Mellis, who was played in by O'Grady inside the area before thumping the ball into the net off the underside of the crossbar.
The goal kicked Hull into life with Robbie Brady firing just wide before George Boyd's half-volley was well held by Tykes goalkeeper Luke Steele.
Five minutes after the restart the Tykes doubled their advantage. This time Chris Dagnall had the ball pinched from his feet by team-mate O'Grady, who drove a fierce low shot into the bottom corner.
Hull boss Bruce brought on striker Nick Proschwitz, who had a good chance but failed to connect with a header from six yards out.
McShane also went close in the closing stages with a header from a corner.
Hull manager Steve Bruce:
"The reason why we've got ourselves in this position is we've played badly before and responded.
"It's a big, huge week and I'm confident we'll respond in the right way.
"Thankfully, it's still in our hands but we certainly need to perform to a level which we haven't seen today."
Barnsley boss David Flitcroft on the result:
"It's massive, isn't it?
"I think the occasion - the last home game - again we're only two weeks away from getting crushed and in a lot of people's minds the season was over against Charlton.
"The courage, the bravery they've displayed; but also the quality was on show. That was evident today."
- 01 Steele
- 14 Wiseman
- 25 Cranie
- 33 Kennedy
- 08 O'Brien
- 11 Perkins
- 21 Mellis (Scotland - 68' )
- 13 Dagnall (McNulty - 79' )
- 23 Etuhu Booked
- 24 Noble-Lazarus
- 27 O'Grady (Rose - 90' )
- 12 Alnwick
- 15 McNulty
- 18 Jones
- 19 Cywka
- 09 Scotland
- 16 Harewood
- 32 Rose
- 34 Stockdale
- 05 Chester
- 15 McShane
- 08 Evans (Rosenior - 79' )
- 23 Faye
- 27 Elmohamady
- 29 Quinn
- 31 Meyler
- 12 Fryatt (Proschwitz - 61' )
- 30 Brady
- 37 Boyd (Simpson - 46' )
- 01 Jakupovic
- 02 Rosenior
- 06 Hobbs
- 17 Fathi
- 14 Cairney
- 11 Simpson
- 33 Proschwitz
Live Text Commentary
Full Time The final whistle is blown by the referee.90:00 +1:42 Substitution
Substitution Danny Rose is brought on as a substitute for Chris O'Grady.90:00 +1:42
Shot from outside the area by Nick Proschwitz misses to the left of the target.86:58
Free kick awarded for an unfair challenge on David Perkins by David Meyler. Direct free kick taken by Tom Kennedy.83:19
Reuben Noble-Lazarus has an effort at goal from outside the area which misses left.82:17
Outswinging corner taken left-footed by Robbie Brady from the left by-line, Paul McShane produces a header from inside the area that goes over the bar.81:11
Paul McShane concedes a free kick for a foul on Kelvin Etuhu. Free kick taken by Martin Cranie.80:04
Chris O'Grady challenges David Meyler unfairly and gives away a free kick. Direct free kick taken by David Stockdale.79:16
Header from deep inside the area by Nick Proschwitz goes harmlessly over the crossbar.78:07 Substitution
Substitution Jimmy McNulty is brought on as a substitute for Chris Dagnall.78:07 Substitution
Substitution (Hull) makes a substitution, with Liam Rosenior coming on for Corry Evans.75:52
Tom Kennedy fouled by James Chester, the ref awards a free kick. Free kick taken by Jim O'Brien.72:15
Headed effort from deep inside the area by Nick Proschwitz misses to the left of the goal.70:21
Chris Dagnall gives away a free kick for an unfair challenge on Corry Evans. Robbie Brady crosses the ball in from the free kick, David Perkins manages to make a clearance.67:46 Substitution
Substitution Jason Scotland is brought on as a substitute for Jacob Mellis.66:41
The referee gives a free kick against Stephen Quinn for handball. Direct free kick taken by Tom Kennedy.65:28
Foul by Jay Simpson on David Perkins, free kick awarded. Luke Steele restarts play with the free kick.63:06
Jay Simpson challenges David Perkins unfairly and gives away a free kick. Direct free kick taken by Luke Steele.62:23
Corry Evans fouled by Kelvin Etuhu, the ref awards a free kick. Direct free kick taken by Robbie Brady.61:22
Free kick awarded for an unfair challenge on Robbie Brady by Jim O'Brien. Direct free kick taken by Paul McShane.
Substitution Nick Proschwitz joins the action as a substitute, replacing Matt Fryatt.59:21
Corner taken by Robbie Brady, clearance by Kelvin Etuhu.57:37
Jacob Mellis takes a shot from inside the box clearing the bar.57:10
David Meyler concedes a free kick for a foul on Chris O'Grady. Direct free kick taken by Tom Kennedy.56:44
The assistant referee flags for offside against Chris Dagnall. Indirect free kick taken by Ahmed Elmohamady.55:57
Inswinging corner taken from the left by-line by Jim O'Brien, David Stockdale makes a save.52:16
Unfair challenge on Kelvin Etuhu by Stephen Quinn results in a free kick. Martin Cranie takes the free kick.50:00 Goal scored
Goal! - Chris O'Grady - Barnsley 2 - 0 Hull City Chris O'Grady finds the net with a goal from outside the box to the bottom left corner of the goal. Barnsley 2-0 Hull.49:17
Reuben Noble-Lazarus takes a inswinging corner from the right by-line played to the near post, Ahmed Elmohamady manages to make a clearance.48:44
Corner taken right-footed by Jim O'Brien from the left by-line, save by David Stockdale.46:19
Foul by David Perkins on David Meyler, free kick awarded. James Chester takes the direct free kick.45:13
Unfair challenge on David Meyler by Reuben Noble-Lazarus results in a free kick. Robbie Brady crosses the ball from the free kick left-footed from right wing, save by Luke Steele.45:01
The referee gets the second half underway.45:01 Substitution
Substitution Jay Simpson on for George Boyd.45:00 +2:14 Half time
Half Time The ref blows to signal half-time.45:00 +1:50
Free kick awarded for a foul by David Meyler on David Perkins. Direct free kick taken by Tom Kennedy.45:00 +1:13
Reuben Noble-Lazarus produces a left-footed shot from outside the penalty box and misses wide left of the target.39:33
Foul by David Meyler on Jacob Mellis, free kick awarded. Tom Kennedy takes the direct free kick.38:18
The offside flag is raised against Chris Dagnall. Free kick taken by David Stockdale.36:02
Inswinging corner taken left-footed by Reuben Noble-Lazarus from the right by-line to the near post, clearance made by Ahmed Elmohamady.33:58
Chris O'Grady gives away a free kick for an unfair challenge on David Meyler. Direct free kick taken by Corry Evans.32:51
Foul by George Boyd on David Perkins, free kick awarded. Direct free kick taken by Tom Kennedy.32:03
Foul by Corry Evans on Chris O'Grady, free kick awarded. David Perkins takes the direct free kick.29:40
Free kick awarded for a foul by Reuben Noble-Lazarus on David Meyler. The free kick is swung in right-footed by David Meyler, save made by Luke Steele.29:15
The ball is swung over by Reuben Noble-Lazarus.28:52
Tom Kennedy fouled by George Boyd, the ref awards a free kick. Free kick taken by Tom Kennedy.28:13
The referee blows for offside against Matt Fryatt. Scott Wiseman takes the indirect free kick.27:49
George Boyd takes a shot. Save made by Luke Steele.22:52
Free kick awarded for an unfair challenge on David Perkins by Corry Evans. Tom Kennedy takes the free kick.20:40
Robbie Brady has an effort at goal from long range that goes wide left.18:18
Foul by Matt Fryatt on Jacob Mellis, free kick awarded. Free kick taken by David Perkins.17:49
Unfair challenge on Reuben Noble-Lazarus by Ahmed Elmohamady results in a free kick. Tom Kennedy restarts play with the free kick.16:24
The offside flag is raised against Matt Fryatt. Luke Steele takes the free kick.14:34
Ahmed Elmohamady crosses the ball from the free kick right-footed from left wing, Luke Steele makes a save.14:34 Booking
Booking Caution for Kelvin Etuhu.14:19
Kelvin Etuhu concedes a free kick for a foul on Stephen Quinn.4:52
George Boyd takes a shot. Tom Kennedy gets a block in.3:41
Chris O'Grady provided the assist for the goal.3:41 Goal scored
Goal! - Jacob Mellis - Barnsley 1 - 0 Hull City Jacob Mellis gets on the score sheet with a goal from inside the box to the top left corner of the goal. Barnsley 1-0 Hull.2:36
George Boyd handles the ball and concedes a free kick. David Perkins takes the direct free kick.0:00
The referee gets the game started.
Live data and text provided by our data suppliers