Callum McGregor’s second-half strike delivered a deserved victory for Celtic in the first leg of their Europa League last-32 tie with Zenit St Petersburg.
The home side dominated play but were ruing a series of missed opportunities until the midfielder’s decisive finish.
Substitute Charly Musonda played a big role, setting up the chance, which McGregor lashed high into the net.
The victory was Celtic’s first win at home in 12 European matches outside the qualifying phase.
This was a significant test for the Scottish champions after a fairly punishing Champions League group stage, which saw them concede 18 goals as they finished behind Paris St-Germain and Bayern Munich.
Manager Brendan Rodgers acknowledged their status as underdogs in this tie, yet Celtic finished the first leg full of belief they can now go further in Europe.
Rodgers made some critical selection decisions, changing from his normal system and dropping Scott Sinclair for McGregor, with Eboue Kouassi also starting.
Those calls seemed inspired from the off, with Kieran Tierney, McGregor and Moussa Dembele immediately looking sharp and threatening.
The home side came close to an early lead when Dembele capitalised on a defensive error to play in Olivier Ntcham. The Frenchman clipped towards goal, but the ball crept agonisingly wide.
Celtic Park responded. It was more like European nights of the past as the crowd roared their approval at a performance bursting with assertiveness and ambition.
Another defensive lapse by the Russians allowed Kouassi to feed McGregor, who shot from the edge of the box, but his effort was straight at Andrei Lunev in goal.
The visitors had shown nothing but nerves and rustiness to that point – playing their first game after a lengthy winter break – but they still came very close to scoring the opening goal.
Celtic goalkeeper Dorus de Vries did well to block Anton Zabolotny’s close-range effort. Yet de Vries had little else to do in the match.
That scare did little to dampen Celtic’s approach. They piled forward but crucially never looked overexposed to a counter-attack. This was a mature and effective display.
Everything was executed at pace, meaning there was never any respite for the Russian side, who appeared subdued following their extended break.
McGregor was prominent in the best of Celtic’s work, linking superbly and racing from deep into spaces beyond Dembele. On one occasion, that dynamism carried him to the touchline behind the defence. He flashed the ball across the six-yard line, but neither Dembele nor Tierney could apply the finishing touch.
Celtic were dominant, looking bright and vibrant, and all their play lacked was a goal. Zenit were fortunate not to lose Daler Kuzyayev after he dragged McGregor to the ground soon after being booked, with the Russians often willing to commit a foul to halt Celtic’s progress.
In the second half, Zenit sat deep trying to stifle the home side’s threat. The pressure remained, but Celtic failed to truly test Lunev’s goal as the clock ticked on.
Zenit manager Roberto Mancini looked increasingly happy to leave with a 0-0 scoreline. Rodgers, on the other hand, knew he needed a goal after his team had played so impressively, and he sent on Musonda in search of a winner.
The intervention worked. Musonda took Dembele’s ball on the run and clipped it perfectly across the goal to McGregor, who took a touch before volleying home emphatically to send Celtic Park wild.
Musonda proved the key with a moment of quality but McGregor’s finish and performance throughout were magnificent and justly rewarded.