Darwin Nunez came off the bench to score one and create another as Liverpool twice came from behind to salvage a point in a chaotic game at newly-promoted Fulham.
The Reds, who pushed champions Manchester City all the way in the title race last season, fell behind when Aleksandar Mitrovic got the better of Trent Alexander-Arnold to head Fulham ahead after meeting a superb cross by Kenny Tete.
Luis Diaz had a goal ruled out for offside at 0-0 before curling a shot against the post after Fulham had taken the lead.
In a thrilling match, substitute Nunez marked his Premier League debut by equalising with a close-range flick before Fulham restored the lead from the penalty spot after Mitrovic was fouled by Virgil van Dijk.
Mitrovic picked himself up to beat Alisson from the spot before Mohamed Salah equalised from close range after a pass by Nunez, a £64m signing from Benfica.
Jordan Henderson went close to winning it at the end when he hit the bar in the fifth minute of stoppage time.
Fulham give Reds a real scare
Fulham's previous Premier League win was against Liverpool on 7 March 2021 but, on that occasion, it was not enough to save them from relegation.
On a gorgeous day in west London, they showed they are up for the challenge after giving Jurgen Klopp's side a real scare.
Their aim this season is to establish themselves in esteemed company and, while there is a long road ahead, this was a highly encouraging start.
Last season's champions of the Championship were certainly not intimidated as they took the game to the Reds, the lively Mitrovic signalling his intention by firing wide with 50 seconds on the clock after darting into the box.
Marco Silva's side were well organised and played with confidence as they continued to create chances.
They went close to going 2-0 ahead when Neeskens Kebano hit the post while new signings Joao Palhinha and Andreas Pereira added creativity to the side.
It took Fulham until the fifth game to register a point the last time they started a Premier League season in 2020-21.
They are up and running after one game this time thanks to a dynamic performance from Mitrovic.
Thiago injury adds to Klopp's worries
This is the fourth straight season the Reds have opened a Premier League campaign against a promoted side, but it was anything but a straightforward start for Klopp's side.
With Curtis Jones, Diogo Jota, Konstantinos Tsimikas, Naby Keita, Alex Oxlade-Chamberlain and Ibrahima Konate either ill or injured, Liverpool's bench included a 20-year-old, one 19-year-old and 17-year-old Stefan Bajcetic.
Fortunately, it also included Nunez.
For the second successive weekend he came off the bench to make a valuable contribution as he followed up his performance in the Community Shield win over Manchester City with another goal.
He produced a clever flick to make it 1-1 before the Uruguay forward was involved in Salah's equaliser to make it 2-2.
A concern for Klopp will be a mounting injury list with the season barely under way.
The loss of Thiago Alcantara to a suspected hamstring injury early in the second half will add to Liverpool's worries, and it remains to be seen whether they will turn to the transfer market to ease the problem before the 1 September deadline.
Player of the match
Squad number9Player nameMitrovic
Squad number18Player nameAndreas Pereira
Squad number26Player nameJoão Palhinha
Squad number33Player nameRobinson
Squad number6Player nameReed
Squad number2Player nameTete
Squad number14Player nameDe Cordova-Reid
Squad number4Player nameTosin
Squad number13Player nameReam
Squad number7Player nameKebano
Squad number5Player nameDuffy
Squad number10Player nameCairney
Squad number11Player nameSolomon
Squad number1Player nameRodák
6Reed26Lobo Alves Palhinha Gonçalves
9Mitrovic1Rodák2TeteBooked at 17mins4Tosin13Ream33Robinson6Reed26Lobo Alves Palhinha Gonçalves7KebanoSubstituted forSolomonat 66'minutes18PereiraSubstituted forCairneyat 89'minutes14De Cordova-ReidBooked at 90minsSubstituted forDuffyat 90+4'minutes9Mitrovic
11Salah9Firmino23Díaz1Alisson66Alexander-Arnold32Matip4van Dijk26Robertson14Henderson3FabinhoSubstituted forMilnerat 59'minutes6Thiago AlcántaraSubstituted forElliottat 51'minutes11Salah9FirminoSubstituted forNúñezat 51'minutes23DíazSubstituted forFreitas Gouveia Carvalhoat 78'minutes
Substitutes2Gomez7Milner13Adrián19Elliott27Núñez28Freitas Gouveia Carvalho43Bajcetic72van den Berg88Chambers
Match ends, Fulham 2, Liverpool 2.
Second Half ends, Fulham 2, Liverpool 2.
Jordan Henderson (Liverpool) hits the bar with a right footed shot from outside the box. Assisted by Harvey Elliott.
Substitution, Fulham. Shane Duffy replaces Bobby De Cordova-Reid.
Bobby De Cordova-Reid (Fulham) is shown the yellow card.
Substitution, Fulham. Tom Cairney replaces Andreas Pereira.
Offside, Liverpool. Trent Alexander-Arnold tries a through ball, but Mohamed Salah is caught offside.
Foul by Fábio Carvalho (Liverpool).
Bobby De Cordova-Reid (Fulham) wins a free kick in the defensive half.
Foul by Trent Alexander-Arnold (Liverpool).
Aleksandar Mitrovic (Fulham) wins a free kick in the defensive half.
Harvey Elliott (Liverpool) wins a free kick in the defensive half.
Foul by João Palhinha (Fulham).
Foul by Fábio Carvalho (Liverpool).
Kenny Tete (Fulham) wins a free kick in the defensive half.
Goal! Fulham 2, Liverpool 2. Mohamed Salah (Liverpool) left footed shot from the centre of the box to the centre of the goal. Assisted by Darwin Núñez.
Attempt missed. Fábio Carvalho (Liverpool) right footed shot from the centre of the box is too high following a corner.
Corner, Liverpool. Conceded by Harrison Reed.
Substitution, Liverpool. Fábio Carvalho replaces Luis Díaz.
Attempt missed. Darwin Núñez (Liverpool) right footed shot from the right side of the box misses to the left. Assisted by Jordan Henderson with a through ball.Our coverage of your Premier League club is bigger and better than ever before - here's everything you need to know to make sure you never miss a moment