Patrick Roberts scored a stunning stoppage-time equaliser as Sunderland mounted a brilliant late fightback to draw 2-2 with Watford and keep their play-off hopes alive.

The Black Cats were heading for a home defeat to the out-of-form Hornets, who were without Joao Pedro as he closes in on a move to Premier League side Brighton.

Christian Kabasele and Ryan Porteous headed Watford into a two-goal lead but Sunderland came fighting back, with Luke O’Nien halving the deficit before Roberts’ moment of brilliance deep into stoppage time.

The draw extends Sunderland’s unbeaten run to eight games and leaves them two points behind sixth-placed Millwall.

Had Sunderland lost, then their play-off hopes would have disappeared if Blackburn beat Luton on Monday night, but now Tony Mowbray’s men know they will head to Preston on the final day still in with a chance of making the top six. Watford remain 13th.

On the back of their impressive win at West Brom last time out, Sunderland started well, with Manchester United loanee Amad Diallo flashing a free-kick just wide after 10 minutes.

Against the run of play, Watford took the lead with their first effort through a thumping Kabasele header from an Imran Louza corner on 17 minutes.

Sunderland probed as they looked for a leveller and Roberts went close when he cut in from the right and fired just wide 10 minutes before the interval.

But the visitors were dangerous on the break and almost doubled their lead in the final stages of the first half when a cross from the right was only cleared as far as Ken Sema, whose shot from the edge of the box was well blocked by Pierre Ekwah.

Anthony Patterson made a brilliant reaction save to keep out a deflected Ismaila Sarr cross in the early stages of the second half.

Then, at the other end, it was Daniel Bachmann’s turn, the Watford keeper denying Trai Hume a headed leveller.

Sunderland dominated possession but Watford were happy to put men behind the ball and defend their lead. And the visitors looked to have put the game out of Sunderland’s reach when Porteous headed in a corner on 69 minutes to double Watford’s lead.

Sunderland gave themselves hope just a minute later when O’Nien poked home substitute Alex Pritchard’s volley from close range, and the home side threw bodies forward in search of an equaliser.

And with their 23rd shot on goal in the fifth minute of added time, they salvaged a draw when Jack Clarke teed up ex-Manchester City forward Roberts and he found the top corner from the edge of the box.

Sheffield Wednesday’s automatic promotion hopes ended despite Michael Smith’s hat-trick earning them a convincing 3-0 win at Shrewsbury.

Victories for both Plymouth and Ipswich confirmed their place in the Championship next season, with Wednesday now consigned to the play-offs for a second successive season.

The Owls were ahead after just eight minutes when top scorer Smith finished off a superb team move.

Dominic Iorfa started it by bursting out of defence before finding Smith. He then fed Lee Gregory, who cleverly played in his strike partner with a backheel before Smith lashed home past goalkeeper Marko Marosi.

It could have got better for Wednesday minutes later when skipper Barry Bannan found space on the edge of the area but saw his speculative effort tipped over the crossbar by an alert Marosi.

The hosts offered precious little going forward in the first half and were caught cold right at the start of the second when Smith headed home from Marvin Johnson’s clipped cross.

He then completed his first hat-trick since 2016 with a tidy finish after a through-ball from Bannan.

Bogey side Harrogate dealt Mansfield’s Sky Bet League Two play-offs bid a massive blow with a 2-1 victory at the One Call Stadium.

The Stags, who have never beaten Harrogate in their seven meetings, are now three points short of the top seven with one match remaining.

A poor first half from Mansfield saw them trailing 2-0 at the break.

Alfie Kilgour turned the ball inside a post for an own goal as he stretched to cut out Matty Daly’s low ball across the six yard box in the 27th minute.

Twelve minutes later it was 2-0 as Kazeem Olaigbe sent Daly into the box on the left and he finished across Christy Pym.

It could have been worse as Olaigbe twice went close while Luke Armstrong was also wide from close range.

The Stags rarely threatened, Hiram Boateng firing the best chance over as they were booed off.

Mansfield made four interval changes and Will Swan shot narrowly wide of the far post within a minute.

But in the 67th minute Swan did sweep home a low Callum Johnson cross from the right to ignite the contest at last.

Mark Oxley then made a superb save high to his right to keep out a Lucas Akins header from a corner in the 75th minute and he was soon diving down low to block Ollie Clarke’s goalbound finish.

Sheffield Wednesday’s automatic promotion hopes ended despite Michael Smith’s hat-trick earning them a convincing 3-0 win at Shrewsbury.

Victories for both Plymouth and Ipswich confirmed their place in the Championship next season, with Wednesday now consigned to the play-offs for a second successive season.

The Owls were ahead after just eight minutes when top scorer Smith finished off a superb team move.

Dominic Iorfa started it by bursting out of defence before finding Smith. He then fed Lee Gregory, who cleverly played in his strike partner with a backheel before Smith lashed home past goalkeeper Marko Marosi.

It could have got better for Wednesday minutes later when skipper Barry Bannan found space on the edge of the area but saw his speculative effort tipped over the crossbar by an alert Marosi.

The hosts offered precious little going forward in the first half and were caught cold right at the start of the second when Smith headed home from Marvin Johnson’s clipped cross.

He then completed his first hat-trick since 2016 with a tidy finish after a through-ball from Bannan.

Derby edged ahead in the League One play-off chase when James Collins earned a 1-1 draw with Portsmouth.

Collins cancelled out Colby Bishop’s opener to leave County two points ahead of seventh-placed Peterborough with one game remaining.

Derby made a strong start with David McGoldrick seeing a 25-yard shot turned behind by Matt Macey before he set up Nathaniel Mendez-Laing who shot wide from 12 yards.

Portsmouth were struggling to contain McGoldrick, who brought another fine save from Macey, but they stunned Pride Park by going ahead when Bishop headed in Joe Morrell’s chip to the back post in the 24th minute.

The visitors had weathered the early storm and would have doubled their lead but for Joe Wildsmith’s saves from Joe Pigott and Connor Ogilvie in the space of 60 seconds.

Derby made a treble change in the 64th minute and it paid off seven minutes later when Curtis Davies headed on a free-kick for Collins to volley in from 10 yards.

The home side piled on the pressure but Portsmouth’s defence was resolute and denied Derby the goal that would have guaranteed a top-six finish.

Late strikes from Ivan Toney and Josh Dasilva saw Brentford come from behind to condemn Nottingham Forest to another Premier League defeat on the road.

Forest had led through birthday boy Danilo, who celebrated turning 22 with a goal in first-half stoppage-time.

But Toney equalised with a free-kick eight minutes from time, taking his Premier League tally for the season to 20.

And with Forest down to 10 men after Danilo went off injured, substitute Dasilva secured a 2-1 win to send relegation-threatened Forest spinning to a seventh straight away defeat.

Brentford dominated the first half and Bryan Mbuemo’s early cross was met with a glancing header from Rico Henry which flew across goal and wide.

Kevin Schade then headed straight at Forest goalkeeper Keylor Navas from Vitaly Janelt’s cross.

Forest’s first chance of the opening half came when Serge Aurier overlapped and played the ball back to Brennan Johnson.

The striker lofted the ball high into the box where Taiwo Awoniyi looped his header over David Raya and over the crossbar.

Navas was called into action again to save Ethan Pinnock’s close-range shot in a crowded area with Mikkel Damsgaard unable to connect with the rebound.

The Costa Rica keeper then held Ben Mee’s header from another Mbeumo free-kick, before Forest took a shock lead.

Morgan Gibbs-White’s shot from the edge of the box ricocheted off the heel of Mee into the path of Danilo, who rifled the ball home from eight yards.

The January signing from Palmeiras, who scored his first goal for the club in their midweek against Brighton, celebrated with a Samba dance in front of the travelling fans.

After the break Dasilva saw a shot blocked and Mee’s attempted scissor-kick flew over.

Raya saved from Gibbs-White and then held an acrobatic overhead kick from Moussa Niakhate as Forest searched for a second.

But they were undone after Cheikhou Kouyate fouled Frank Onyeka 25 yards out.

Toney, who had done little of note all afternoon, stepped up to curl the free-kick between Navas and his far post.

In doing so the striker became the first Bees player to hit 20 goals in the top flight since the 1930s.

Forest, who had used all their substitutes, had to see out the match a man down after Danilo limped off.

Brentford sensed their chance and Navas scrambled to keep out Onyeka’s deflected shot before Aaron Hickey drove narrowly wide.

It was Dasilva who hit the knockout blow, cutting in from the right wing and lashing home the winner in stoppage time.

Derby edged ahead in the League One play-off chase when James Collins earned a 1-1 draw with Portsmouth.

Collins cancelled out Colby Bishop’s opener to leave County two points ahead of seventh-placed Peterborough with one game remaining.

Derby made a strong start with David McGoldrick seeing a 25-yard shot turned behind by Matt Macey before he set up Nathaniel Mendez-Laing who shot wide from 12 yards.

Portsmouth were struggling to contain McGoldrick, who brought another fine save from Macey, but they stunned Pride Park by going ahead when Bishop headed in Joe Morrell’s chip to the back post in the 24th minute.

The visitors had weathered the early storm and would have doubled their lead but for Joe Wildsmith’s saves from Joe Pigott and Connor Ogilvie in the space of 60 seconds.

Derby made a treble change in the 64th minute and it paid off seven minutes later when Curtis Davies headed on a free-kick for Collins to volley in from 10 yards.

The home side piled on the pressure but Portsmouth’s defence was resolute and denied Derby the goal that would have guaranteed a top-six finish.

Morecambe kept their hopes of League One survival alive with a dramatic comeback victory over Lincoln at the Mazuma Stadium.

The Shrimps trailed 2-0 thanks to goals from Lasse Sorensen and Matty Virtue but Cole Stockton’s double – including an 86th-minute winner – and Oumar Niasse’s strike gave the Shrimps a precious three points.

Lincoln opened the scoring on the half hour with a goal on the break when Sorensen finished neatly from Ethan Erhahon’s threaded pass.

The Imps doubled their lead on 48 minutes when Virtue stroked home from the edge of the box after another swift break from the visitors.

The Shrimps pulled one back just two minutes later with a stunning, dipping volley from Stockton to beat Carl Rushworth.

Dan Crowley then hit the post for the home side and Daniel Mandroiu hit the woodwork for the visitors before the Shrimps levelled on 66 minutes when former Everton striker Niasse took advantage of Rushworth racing from his area to head the ball into the empty net.

The action then swung from end to end and it was Morecambe who scored the all-important third with Stockton heading Ash Hunter’s free-kick into the top left-hand corner of the Lincoln goal to seal a dramatic three points.

With one game remaining Morecambe are 21st, a point ahead of Cambridge – who have a game in hand – and level on points with MK Dons, who are outside the relegation zone on goal difference.

Morecambe kept their hopes of League One survival alive with a dramatic comeback victory over Lincoln at the Mazuma Stadium.

The Shrimps trailed 2-0 thanks to goals from Lasse Sorensen and Matty Virtue but Cole Stockton’s double – including an 86th-minute winner – and Oumar Niasse’s strike gave the Shrimps a precious three points.

Lincoln opened the scoring on the half hour with a goal on the break when Sorensen finished neatly from Ethan Erhahon’s threaded pass.

The Imps doubled their lead on 48 minutes when Virtue stroked home from the edge of the box after another swift break from the visitors.

The Shrimps pulled one back just two minutes later with a stunning, dipping volley from Stockton to beat Carl Rushworth.

Dan Crowley then hit the post for the home side and Daniel Mandroiu hit the woodwork for the visitors before the Shrimps levelled on 66 minutes when former Everton striker Niasse took advantage of Rushworth racing from his area to head the ball into the empty net.

The action then swung from end to end and it was Morecambe who scored the all-important third with Stockton heading Ash Hunter’s free-kick into the top left-hand corner of the Lincoln goal to seal a dramatic three points.

With one game remaining Morecambe are 21st, a point ahead of Cambridge – who have a game in hand – and level on points with MK Dons, who are outside the relegation zone on goal difference.

Late strikes from Ivan Toney and Josh Dasilva saw Brentford come from behind to condemn Nottingham Forest to another Premier League defeat on the road.

Forest had led through birthday boy Danilo, who celebrated turning 22 with a goal in first-half stoppage-time.

But Toney equalised with a free-kick eight minutes from time, taking his Premier League tally for the season to 20.

And with Forest down to 10 men after Danilo went off injured, substitute Dasilva secured a 2-1 win to send relegation-threatened Forest spinning to a seventh straight away defeat.

Brentford dominated the first half and Bryan Mbuemo’s early cross was met with a glancing header from Rico Henry which flew across goal and wide.

Kevin Schade then headed straight at Forest goalkeeper Keylor Navas from Vitaly Janelt’s cross.

Forest’s first chance of the opening half came when Serge Aurier overlapped and played the ball back to Brennan Johnson.

The striker lofted the ball high into the box where Taiwo Awoniyi looped his header over David Raya and over the crossbar.

Navas was called into action again to save Ethan Pinnock’s close-range shot in a crowded area with Mikkel Damsgaard unable to connect with the rebound.

The Costa Rica keeper then held Ben Mee’s header from another Mbeumo free-kick, before Forest took a shock lead.

Morgan Gibbs-White’s shot from the edge of the box ricocheted off the heel of Mee into the path of Danilo, who rifled the ball home from eight yards.

The January signing from Palmeiras, who scored his first goal for the club in their midweek against Brighton, celebrated with a Samba dance in front of the travelling fans.

After the break Dasilva saw a shot blocked and Mee’s attempted scissor-kick flew over.

Raya saved from Gibbs-White and then held an acrobatic overhead kick from Moussa Niakhate as Forest searched for a second.

But they were undone after Cheikhou Kouyate fouled Frank Onyeka 25 yards out.

Toney, who had done little of note all afternoon, stepped up to curl the free-kick between Navas and his far post.

In doing so the striker became the first Bees player to hit 20 goals in the top flight since the 1930s.

Forest, who had used all their substitutes, had to see out the match a man down after Danilo limped off.

Brentford sensed their chance and Navas scrambled to keep out Onyeka’s deflected shot before Aaron Hickey drove narrowly wide.

It was Dasilva who hit the knockout blow, cutting in from the right wing and lashing home the winner in stoppage time.