Liverpool survive Fulham scare to go top of Premier League
Fulham's awful defending all season is the reason they are heading back to the Championship after just one season back in the top flight.
The on-form Sadio Mane put the visitors in front midway through the first half, but a rare defensive mix-up between Virgil van Dijk and Alisson Becker allowed Ryan Babel to give his former club a huge scare 16 minutes from time.
Fulham's awful defending all season is the reason they are heading back to the Championship after just one season back in the top flight, and the hosts gave Jurgen Klopp's men a much-needed gift when goalkeeper Sergio Rico bundled over Mane and Milner secured all three points from the spot.
Liverpool now hold a two-point lead over City, but the champions have a game in hand.
The league leaders completed a clean sweep of four English sides into the quarter-finals of the Champions League with a highly impressive 3-1 win at Bayern Munich on Wednesday.
But they nearly suffered a very costly European hangover against a Fulham side still 13 points adrift of safety.
Most of the visitors' attacking threat came down their left side in the first half and that proved the source of the breakthrough on 26 minutes.
Mane scored twice in Munich in midweek and took his hot streak to 11 goals in 11 games with a simple finish after exchanging passes with Roberto Firmino.
At the other end, Babel was Fulham's biggest threat all afternoon and Tom Cairney fired wastefully over after the Dutchman outpaced Trent Alexander-Arnold just before the break.
Liverpool started the second half with greater intent to try and put the game to bed.
Andy Robertson was the provider as Georginio Wijnaldum headed a good opportunity over at the far post before Rico was called into action to deny Van Dijk.
However, as a torrential rain shower swept over the banks of the Thames to make playing conditions hazardous, Liverpool's slender lead proved a dangerous one.
Floyd Ayite was rightly flagged offside as he headed a deflected shot past Alisson before the Brazilian number one got down well to save from Andre Zambo Anguissa.
Mane was inches away from securing the points and doubling his tally for the day with a deft header from a corner that clipped the top of the crossbar.
But disaster seemed to have struck for Liverpool when Van Dijk's header back towards Alisson didn't have enough purchase and Babel stepped in with the break of the ball to tap into an empty net.
However, the league leaders showed why they are in the running to end a 29-year title drought to get a vital three points with the help of some erratic goalkeeping from Rico.
Mohamed Salah's goal drought continued as the Egyptian has scored just once now in his last 10 games, but it was his shot that Rico spilled before the Spaniard unnecessarily pulled down Mane.
Milner took responsibility from the penalty spot and calmly sent Rico the wrong way to restore Liverpool's lead, which this time they never looked like letting go.
Salah should have got a much-needed confidence boost when released clean through by Mane, but Rico saved low to his left.