Liverpool beat Wolves 2-0 on the final day but, despite finishing with 97 points, were denied a first league title since 1990 as Manchester City also won 4-1 against Brighton.
Sadio Mane scored in the first half to give Liverpool hope, but despite going a goal down, City came back to claim back-to-back titles for the first time in England since Man United did it in 2009.
"As long as City are around, with the quality and financial power, it's not easy that any other team will pass them. That is clear," Jurgen Klopp said.
"We have to be very close to perfection to win the Premier League, I think this is the case. The season is a very long, hard one. You have to deal with setbacks.
"We were always competitive. City got the points they have because we were there. They have 198 points in two years, that's special. We made such big steps. It's only the first step."
Fresh off their remarkable Champions League comeback against Barcelona in midweek, Liverpool knew they needed to win to stand any chance of lifting the title and Mohamed Salah was back in the XI again after missing out through injury. Champions League hero Divock Origi also kept his place with Roberto Firmino still not fit to play.
Chances were few and far between in the opening exchanges but Liverpool took the lead on 17 minutes as Trent Alexander-Arnold found space to cross low from the right and the ball found Mane unmarked in the box, who hammered it home.
Controlling possession, Liverpool almost had a second as Andrew Robertson (fit again after being injured against Barcelona) lined up a powerful shot that was well blocked by goalkeeper Rui Patricio.
Fans were celebrating in the Anfield stands as news filtered through of a goal from Brighton, but it was a false alarm. Then, incredibly, a few minutes later Glenn Murray scored. But, inside 83 seconds, Sergio Aguero levelled for City to return things to how they were.
Back in Liverpool, Salah blasted a shot over the bar and Diogo Jota wasted a good chance for Wolves after getting in behind the defence and failing to pick out a teammate with his cross.
Since scoring, the Reds looked nervous and those nerves were felt in the crowd as news came through of Aymeric Laporte's goal to put Man City 2-1 up.
Things almost went from bad to worse before half-time as a flowing break from Wolves saw Matthew Doherty slid through on the right, but his looped shot deflected off the top of the bar with Alisson beaten.
Early in the second half, Alexander-Arnold tried a speculative effort from a free kick that hit the side netting and Ryan Bennett was booked for hacking down Mane on the break.
Doherty again found space down the right after a fine pass, but his cross found nobody in the box and Joel Matip was there to block a long shot from Jonny. Raul Jiminez then hammered a shot well wide.
Origi sent Mane away and the Senegal winger's ball across was deflected back into the striker's path, but he shot over the bar after turning well. It was his last action of the game though, as James Milner replaced him.
On 63 minutes, the crowd fell silent again as Riyad Mahrez made it 3-1 to Man City, leaving Liverpool needing a miracle. Then Jota was sent through but Alisson did well to come out and stop him before he could get a meaningful shot on goal.
As 71 minutes ticked by, Jota's point blank header was saved by Alisson and City made it 4-1 on the south coast through Ilkay Gundogan -- virtually assuring themselves of the title. Georginio Wijnaldum appeared at the back post to almost get another for Liverpool but the atmosphere in the stadium mirrored those of the players.
Liverpool fans were given something else to cheer as Alexander-Arnold whipped in another fine cross for Mane to head his second goal and make the result more comfortable. Then Premier League Player of the Year Virgil van Dijk was denied by the crossbar.
But it was the result in Brighton that mattered and Liverpool missed out on the title by a single point. Though of course they do have a Champions League final on June 1 to play.