A fantastic fighting performance from Fulham ended Liverpool’s 26-match unbeaten run at a sunny Craven Cottage this afternoon. Marco Silva’s side showed fortitude to put aside the early setback of conceding a stunning strike from Alexis Mac Allister to score three times before half time. The recalled Ryan Sessegnon equalised before Alex Iwobi punished Andy Robertson for a silly square ball and Rodrigo Muniz, who bullied Virgil van Dijk through, added a third ahead of half time. Liverpool did reduce their arrears through substitute Luis Diaz and former Fulham midfielder Harvey Elliott twice came close to rescuing a point late on, but the hosts held on for a famous victory.

Silva made four changes from the side that had succumbed to Arsenal on Tuesday and it took only a couple of minutes for Fulham to get on the front foot. Andreas Pereira pinched the ball from Ibrahima Konate and squared for Muniz, who show his shot blocked by van Dijk. Just as the Whites were looking to forward again, Mac Allister smashed home from 20 yards after robbing Iwobi and sauntering past Sander Berge to send the travelling fans wild. But this wasn’t the day that the Liverpool fans had expected – and Fulham roared back within nine minutes.

It was no surprise that Sessegnon, a livewire in his two recent outings against the north London clubs, squared the contest. The prodigal son’s first Premier League goal back at his boyhood club came at the Hammersmith End to seal the three points against Spurs; here, he scored at the Putney End after a dreadful attempt at a clearance from Curtis Jones, squeezing his shot between Caoimhin Kelleher and the near post.

Four minutes later, Fulham had the lead. Robertson played an inexplicable ball across his back four and Iwobi advanced into a shooting position. The Nigerian international saw his shot deflect in off Robertson to give Fulham the lead. Even better was to follow for the Whites ten minutes later when Iwobi’s miscue sent a ball up into the air above the Liverpool defence. Muniz got there first, brought the ball down delightfully and spun away from van Diijk, before a powering a finish past Keheller.

Both sides had chances early in the second half but Mo Salah wasted a guilt-edged opportunity by blazing remarkably over the bar from close range. That was a let off that Fulham didn’t heed as substitute Diaz brought the league leaders back into the contest by guiding Conor Bradley’s cross beyond Bernd Leno. It was Elliott who had the best chances as Slot’s side surged forward, but the former Fulham trainee curled a shot against the frame of the goal and then shot too close to Leno.

It became a little nervy at the end but this was a deserved win for Fulham and a serious demonstration of their character after last week’s setbacks.

FULHAM (4-2-3-1): Leno; Castagne, A. Robinson, Andersen, Bassey; Lukic (Reed 76), Berge; R. Sessegnon (Traore 82), Iwobi (Tete 82), Pereira (Smith Rowe 76); Muniz (Jimenez 76). Subs (not used): Benda, Cuenca, Cairney, Willian.

BOOKED: Lukic, Leno.

GOALS: Sessegnon (23), Iwobi (27), Muniz (37).

LIVERPOOL (4-3-3): Keheller; Jones, Robertson (Chiesa 82), van Dijk, Konate (Bradley 67); Gravenberch, Mac Allister, Szoboszlai (Elliott 55); Salah, Gakpo (Diaz 55), Jota (Nunez 67). Subs (not used): Jaros, Tsimikas, Quansah, Endo, Nunez.

GOAL: Mac Allister (14), Diaz (75).

REFEREE: Chris Kavanagh (Greater Manchester).

ATTENDANCE: 27,770.