Substitute Vitaliy Buyalskyy scored a late equaliser to give Dynamo Kiev a valuable point from a 2-2 draw with Porto on their return to the Champions League group stage after more than two years.
Sergiy Rebrov's men were headed for defeat after Vincent Aboubakar scored in either half to give Porto a 2-1 lead, but Buyalskyy arrived at the finish to rescue his side.
Two goals in three first-half minutes saw an entertaining contest burst into life, with Oleh Gusev opening the scoring for Dynamo after a brilliant team move that tore the visitors' defence apart.
But Porto rallied immediately and equalised with a goal of equal quality when Aboubakar converted Miguel Layun's cross.
The forward struck again nine minutes from time after goalkeeper Oleksandr Rybka had failed to connect with a cross that he should have cleared.
But Buyalskyy saved the day for Dynamo, and the home side might even have won it as they pressed for another goal in the closing seconds.
Though Porto dominated much of the contest, the hosts made the brighter start, with Yevhen Khacheridi heading over from close range in the early exchanges.
Iker Casillas, who joined fellow Spaniard Xavi on a record 151 Champions League appearances on his Porto debut in the competition, almost cost his side when he dropped a high ball and had to brave a goalmouth scramble to clear his lines.
The first goal arrived in the 20th minute, following a sweeping Dynamo move that must have delighted Rebrov.
A neat exchange of passes on the halfway line released Denys Garmash, who raced away and whipped a ball into the penalty area, just beyond the reach of Miguel Veloso but straight to the feet of Gusev, who gave Casillas no chance with his finish.
Less than three minutes later, Porto provided the perfect response. Layun broke down the right and skipped over the challenge of Derlis Gonzalez before sending a perfect, curling cross onto the head of the unmarked Aboubakar, who duly despatched the ball into the net.
Gusev and Gonzalez swapped wings after the break as Dynamo looked to get in behind Porto's impressive full-back pairing of Layun and Maxi Pereira.
But it was the visitors who looked more likely to take the lead, as Sergiy Rybalka brought down Yacine Brahimi on the edge of the box and Maicon blasted a free-kick not far wide of Rybka's goal.
Rybka went from hero to villain with 10 minutes left to play, tipping over a rasping shot from substitute Jesus Corona, before failing to connect with Pereira's cross from a half-cleared corner that Aboubakar happily slammed into the gaping net.
But there was more drama to come at the other end, where Rybalak's free-kick bounced into the box with two men in an offside position, but the referee waved play on and Buyalskyy was unchallenged as he headed home the equaliser.
Thank you for reading 5 articles this month* Join now for unlimited access
Enjoy your first month for just £1 / $1 / €1
*Read 5 free articles per month without a subscription
Join now for unlimited access
Try first month for just £1 / $1 / €1