Match ends, Celtic 3, Livingston 2.
Celtic "made life hard" for themselves in the 3-2 win over Livingston, says manager Neil Lennon.
The champions led 3-1 in Glasgow through Callum McGregor, Ryan Christie and Albian Ajeti.
But Julien Serrano's strike reduced the deficit for Livi, who had gone in front through Jason Holt's penalty.
"Good strike from Serrano but we should've dealt with it early," said Lennon, whose side went top of the table on goals scored.
"I thought we could've had a penalty quite easily and it's debatable whether Livingston's is a penalty. We reacted very well, we scored two brilliant goals. And then with the third goal, you're thinking, '3-1, we're very, very comfortable in the game, in control'.
"We made life hard for ourselves in the last 10 minutes by giving away a poor goal."
The story of the first half was encapsulated in a frantic eight-minute spell during which both sides had penalty claims and found the net.
Christie was convinced he should have been awarded a spot-kick for handball after his effort was blocked by Ciaron Brown.
Within seconds, Livi were up the other end with Scott Tiffoney's cross cut out by Kristoffer Ajer's hand and this time referee Gavin Duncan did point to the spot. Holt netted his first Livingston goal.
The visitors would have been expecting a reaction and their lead lasted only four minutes as Ajeti teed up McGregor for his first of the season, a deflection taking the flight of the ball out of Robby McCrorie's reach.
McGregor and Greg Taylor combined on the left to set up Christie to turn in Celtic's second from close range moments later.
A third goal always seemed likely for the champions and it came to pass when Christie's subtle but effective through ball was swept in by Ajeti.
French full-back Serrano was afforded too much space as he took down a bouncing ball and took full advantage with a powerful drive into the top left corner.
And there was a nervous moment for the hosts in added time when substitute Carlo Pignatiello headed Alan Forrest's cross wide.
Man of the match - Callum McGregor
What did we learn?
Lennon has stated his desire to play 3-5-2 and his line-up against Livi was perhaps the purest form of it with Jeremie Frimpong and Taylor taking up the wide positions and Christie pushed up front with Ajeti.
Going forward on the left it was successful, particularly with the second goal, but Celtic were less potent on the right and gave up more chances than usual at the back, with injured Christopher Jullien not making the squad.
With Odsonne Edouard rested on the bench, Ajeti was given the chance to lead the line and provided a goal and an assist.
Plaudits but no points for Livi but they would much prefer points after registering one win and two draws from their opening eight games.
What did they say?
Celtic manager Neil Lennon: "I'm happy we're creating the chances. We scored three really good goals today, it could've been more.
"Conceded another penalty, which is really frustrating. We need to tidy up on a few things defensively."
Livingston head coach Gary Holt: "Probably frustrated that we've come here, played so well and conceded some soft goals. When we get back to 3-2, we had them rattled.
"The second goal is offside for them. Taylor's offside. That's the sticking one for us. That's the decision that you need to go your way. It's a sore one."
Celtic take on Riga in Latvia in Thursday's Europa League third qualifying round tie and return to domestic action next Sunday at home to Hibernian. Livi host St Johnstone next Saturday.
- 44ElhamedSubstituted forBittonat 74'minutes
- 30FrimpongSubstituted forForrestat 74'minutes
- 21NtchamSubstituted forTurnbullat 85'minutes
- 10AjetiSubstituted forKlimalaat 79'minutesBooked at 90mins
- 17ChristieSubstituted forElyounoussiat 85'minutes
- 3BrownSubstituted forForrestat 74'minutes
- 6BartleySubstituted forPignatielloat 89'minutes
- 10SibbaldBooked at 50minsSubstituted forRobinsonat 69'minutes
- 22TiffoneySubstituted forLokotschat 69'minutes
- Gavin Duncan
- Shots on Target
Second Half ends, Celtic 3, Livingston 2.
Attempt missed. Carlo Pignatiello (Livingston) header from the centre of the box misses to the left. Assisted by Alan Forrest with a cross.
Attempt blocked. Jason Holt (Livingston) right footed shot from outside the box is blocked. Assisted by Scott Robinson.
Attempt missed. Efe Ambrose (Livingston) left footed shot from outside the box misses to the right. Assisted by Scott Pittman following a set piece situation.
Patryk Klimala (Celtic) is shown the yellow card for a bad foul.
Foul by Patryk Klimala (Celtic).
Jason Holt (Livingston) wins a free kick in the defensive half.
Substitution, Livingston. Carlo Pignatiello replaces Marvin Bartley.
Attempt missed. Shane Duffy (Celtic) header from the centre of the box misses to the left. Assisted by David Turnbull with a cross following a corner.
Corner, Celtic. Conceded by Alan Forrest.
Substitution, Celtic. David Turnbull replaces Olivier Ntcham.
Substitution, Celtic. Mohamed Elyounoussi replaces Ryan Christie.
Offside, Livingston. Nicky Devlin tries a through ball, but Alan Forrest is caught offside.
Substitution, Celtic. Patryk Klimala replaces Albian Ajeti.
Albian Ajeti (Celtic).
Scott Pittman (Livingston) wins a free kick in the defensive half.
Goal! Celtic 3, Livingston 2. Julien Serrano (Livingston) left footed shot from outside the box to the top left corner. Assisted by Jason Holt.
Offside, Celtic. Greg Taylor tries a through ball, but Albian Ajeti is caught offside.
Albian Ajeti (Celtic) wins a free kick in the defensive half.