Luis Suarez gave Barca a first-half lead against his former club when he turned home a brilliant Jordi Alba cross. Liverpool had chances to level, with James Milner and Mohamed Salah both bringing the best out of Marc-Andre ter Stegen, but the Premier League side had no answer for Messi once he got going.
Messi doubled Barca's advantage in the 75th minute when he finished a move he had started. His brilliant pass to Sergi Roberto ended up in the path of Suarez, whose kneed shot hit the bar before Messi was on hand to roll the rebound home. Seven minutes later, the Argentine executed a stunning free kick from 30 yards out to leave Liverpool with a mountain to climb going into next week's second leg at Anfield.
Barca are so close to a first Champions League final in four years that they can taste it. And it's largely thanks to one man: Messi. He scored twice against Lyon and Manchester United in each of the last rounds and now has two against Liverpool. He started the season saying he wanted to bring the "beautiful" Champions League trophy back to Camp Nou and you wouldn't bet against him doing it single-handedly right now. As well as reaching 600 goals for Barca, he's now up to 12 in nine European appearances this season -- more than any other player.
It would be unfair to say Messi won this game on his own, though. It took some steely concentration and rearguard action to shut out an impressive Liverpool side. The defence struggled with Sadio Mane and Salah's pace at times, but they managed to keep them at bay -- just -- and when they didn't, Ter Stegen was there to make the save. Barca's shape and defending as a team has served them well in almost every big game this season.
For parts of the night, Barca appeared second best. Sergi Roberto struggled to deal with Mane, Gerard Pique made a slow start and Clement Lenglet was walking a tightrope in the second half after earning a booking for fouling Salah. Despite how well they defended, they also rode their luck. Even at 3-0, Liverpool had chances to score an away goal. Ivan Rakitic and Nelson Semedo both cleared off the line and Salah missed a sitter off the post.
It was also a tough night for Philippe Coutinho, jeered by his own supporters when taken off early in the second half against his former club.
Finally, substitute Ousmane Dembele missed a glorious chance on the counter-attack to make it four. But they couldn't possibly come to regret that, could they?
Manager rating out of 10
8 -- Love it or hate it, this was a typical Ernesto Valverde performance. Barca are almost coming to be defined by how well they can hold out when under pressure -- how well they "suffer," as Spanish speakers love to say. With Messi, after all, they know the suffering will be worth it more often than not. That suffering requires good organisation, though, and Valverde gives them that.
Player ratings (1-10; 10 = best. Players introduced after 70 minutes get no rating)
GK Marc-Andre ter Stegen, 8 -- Made big saves at 1-0 to keep Liverpool at the gates, notably Milner and Salah were both kept out. Was also adventurous with his passing, always looking to take the English side's press out of the game.
DF Sergi Roberto, 6 -- Struggled against the double threat of Mane and Andrew Robertson at right-back but improved when he moved into midfield. His run into the box yielded the second goal.
DF Gerard Pique, 7 -- Looked as if he were going to be in for a tough night but got his act together and ended the game heading everything away and looking as assured as ever.
DF Clement Lenglet, 6 -- Unlike Pique, he did have a tough night. Salah was brilliant and made things really tough for the Frenchman, who didn't know whether to give him space or stay tight.
DF Jordi Alba, 7 -- The left-back's brilliant pass for the opening goal was one of many he delivered in the final third. Perhaps he could have helped Lenglet with Salah a little bit more, although he did dig in in the second half.
MF Sergio Busquets, 7 -- Some silky moments, including a scoop over Milner's head, a double drawback and a nice pass through the lines to Messi in the lead up to the second goal. Still a little static out of possession, though.
MF Arturo Vidal, 6 -- The surprise pick over Arthur in midfield, he battled from the first minute until the last, getting back in stoppage time to brilliantly nudge the ball away from Mane in the box.
MF Ivan Rakitic, 6 -- A gritty performance. Made some poor choices farther forward, including passing in the first half early on when he should have shot. Essential to this Barca side's shape, though.
FW Lionel Messi, 10 -- It's ridiculous how good he is. What more can be written? Even before scoring, he was the best player on the pitch, drawing three Liverpool players to him every time he got the ball, beating Fabinho with the same dummy time and again and dropping deep to orchestrate play. He was head and shoulders above everyone else on the pitch -- and they weren't all that bad.
FW Luis Suarez, 7 -- A typical Suarez performance, full of niggle and arguments. He might have played for Liverpool until 2014, but that didn't stop him from celebrating his goal -- his first in the Champions League this season -- in the way a semifinal goal deserves to be celebrated.
FW Philippe Coutinho, 5 -- Looked up for it against his former teammates initially but quickly lost his way. Ended up drawing whistles from the home fans twice in the second half after losing the ball and was taken off before the hour mark.
DF Nelson Semedo, 7 -- His pace helped deal with Liverpool's threat down the left, while he also offered more of a threat for Barca on the right.
FW Ousmane Dembele, N/R -- Only came on in stoppage time but missed a glorious chance to make it 4-0.
MF Carles Alena, N/R -- Like Dembele, came on after the board had gone up showing five minutes of additional time.