After taking the lead, Barca were dominant in possession, but save a Frenkie de Jong effort saved by Ondrej Kolar's legs, it was Slavia who had the lion's share of chances, with Marc-Andre ter Stegen making impressive saves from Jaroslav Zeleny, Peter Olayinka and Lukas Masopust twice.
Slavia got the goal they had richly deserved just after the break. Masopust collected a punt over the top well, fed left-back Jan Boril, who finished beyond Ter Stegen.
The match did not stay level for long. Once again, Messi was the catalyst, hanging a free kick towards the far post, which Olayinka tried to usher behind. Luis Suarez refused to give up the fight and tried to put the ball back into the danger area, finding Olayinka's arm and the deflection took it past the helpless Kolar.
Slavia huffed and puffed in an effort to get back into the game but lacked the control they enjoyed towards the end of the first half. Messi and Suarez both had opportunities to seal the win but neither could finish them and the visitors were made to endure a nervy ending.
Where would Barca be without Messi? For all the hundreds of millions of Euros Barca have spent, there was very little to separate the two teams. In fact, the most tangible difference was Messi, who started proceedings with a fine goal and it was his free kick which forced the eventual winner, as fortuitous as it was. He was simply involved in everything positive Barca did, but credit must go to some of the brave, bodies-on-the-line defending his team-mates put in at the end of the game.
MAN OF THE MATCH
Lionel Messi (Barcelona) - Messi looked every bit a superstar on a night where many of his team-mates struggled. Time and time again, he is the one deciding matches and that was certainly the case in Prague.
Barcelona: Ter Stegen 7, Semedo 7, Pique 6, Lenglet 6, Alba 6, Busquets 6, Arthur 7, De Jong 6, Messi 8, Suarez 6, Griezmann 6. Subs: Dembele 7, Vidal 5, Rakitic 6
3' - GOAL!! Barca have the early lead. Messi robs Sevcik in possession, feeds Arthur then makes a fine run into the box, where he gets the ball back from the Brazilian to sidefoot into the back of the net.
20' - What a save! Sevcik works it out to Boril on the wide left, who squares it to Zeleny, whose goalbound shot is wonderfully blocked by Ter Stegen.
37' - Ter Stegen is called into action again! Olayinka takes aim from distance and the German keeper tips it away when it flying towards the top corner.
50' - GOAL! Slavia finally get their reward! Masopust collects a high ball brilliantly, feeds Boril, who finishes emphatically beyond Ter Stegen. They've deserved nothing less.
57' - GOAL! Barca have the lead again but they scarcely deserve it. Messi hangs in a free kick which Olayinka looks to fend behind. He does not get enough of it and Suarez, who is well off balance, tries to put it back in the danger area. It brushes Olayinka's arm and goes into the back of the net.