Republic of Ireland striker Sean Maguire continued his brilliant goalscoring form to keep Preston North End 's play-off hopes alive.
The Kilkenny man swooped for a terrific diving header to break the deadlock at Sunderland , who remain five points adrift of the safety zone. After Jake Clarke-Salter was sent off for a second booking, Callum Robinson nodded in a second to seal the points.
Preston are just two points off sixth-placed Middlesbrough.
Full-Time: @SunderlandAFC 0-2 #pnefc It's a deserved three points on the road for Alex Neil's side who make it 11 games unbeaten away from home in the @SkyBetChamp ! 👏💚 pic.twitter.com/Ir1GEbLAPC
March 17, 2018
"He has got five goals now in five games and I think he’s what we’ve been missing," said Preston boss Alex Neill of the Irishman.
"I still think he’s a bit away from his best but if you give him an opportunity in the box he’s more than capable of scoring."
Benik Afobe scored twice as Wolves extended their lead at the top of the table to six points with a 3-1 win against Burton.
With second-placed Cardiff not in action until Sunday, Wanderers took full advantage, opening the scoring on the quarter-hour when Helder Costa chested down Conor Coady's ball over the top and fired past the goalkeeper.
Afobe added a second for the home side, latching on to a through-ball from Ruben Neves and finding the top corner.
Burton were back in it before the break when Lloyd Dyer slammed the ball home via a deflection, but Afobe's coolly-taken second sealed the points for Wolves.
The spoils are shared here after a tense West London derby. #FFC pic.twitter.com/IXb0iqNCe5
March 17, 2018
Fulham missed the chance to close the gap on the Bluebirds as they squandered a two-goal lead to draw 2-2 with QPR at Craven Cottage.
Tom Cairney and Lucas Piazon had put Slavisa Jokanovic's side in control, but Massimo Luongo pulled one back for the visitors in first-half added time before Pawel Wszolek completed the comeback in the 81st minute.
Middlesbrough remained in the play-off places following a 1-1 draw at Brentford .
Adama Traore's second goal in as many games - a low driven shot from the edge of the area - put the visitors in front after 21 minutes.
But the Bees were back on level terms when Lewis Macleod fired home his first goal for the club at the second attempt.
Substitute Romaine Sawyers was sent off late on for Brentford for two bookings but Dean Smith's side held on for a point.
Milan Djuric's diving header was enough for Bristol City to claim a 1-0 win against Ipswich which moved them a point behind Boro.
Elsewhere at the bottom, Birmingham drew level on points with fourth-bottom Barnsley following a 3-0 win against Hull.
Blues took a 12th-minute lead when Che Adams pulled the ball back for Jota to slot home and doubled their advantage early in the second half through Adams' attempted cross which caught out goalkeeper Allan McGregor.
Jota's second of the afternoon sealed victory for Garry Monk's side.
Barnsley made it 11 home games without a win as Lee Gregory's first-half strike and a stunning effort from Ben Marshall stretched Millwall 's unbeaten run to eight matches with a 2-0 victory.
Atdhe Nuhiu bagged a brace as Sheffield Wednesday claimed a 2-1 win at Leeds , who had equalised through Jay-Roy Grot.
Norwich held on for a 3-2 win against Reading , with Mario Vrancic and Grant Hanley putting them firmly in control. Liam Kelly - included in Martin O'Neill's panel for next week's friendly in Turkey - pulled one back, only for James Maddison to restore their two-goal cushion from the penalty spot.
Sam Smith's first league goal made it 3-2 but Norwich held on.
Sheffield United drew 0-0 with Nottingham Forest .