Hulk scored a stunning individual goal as Zenit beat Lyon 3-1 and moved to the brink of the Champions League knockout stages.
The Brazil international picked up the ball on the halfway line before striding forward and rifling a long-range shot into the left-hand corner to put Zenit 2-1 up in Tueday's contest at the Petrovsky Stadium.
Danny then struck late on as Zenit made it three from three in Group H and another win in the return fixture at the Stade de Gerland will put them into the last 16.
Zenit had deservedly led at the break after Artyom Dzyuba opened the scoring in just the second minute with a cool finish.
A wonderful piece of ingenuity from Alexandre Lacazette early in the second half gave the Ligue 1 side - who are yet to win in the competition - hope of mounting a turnaround.
But Hulk restored Zenit's lead before Danny completed the scoring on the counter-attack, meaning Lyon can be eliminated from the tournament if they are beaten next time out.
It took just two minutes for Zenit to make the breakthrough as Oleg Shatov picked up a loose ball in the left of midfield and played to Dzyuba, who turned sharply on the edge of the box before slotting into the bottom right-hand corner.
At the other end, Zenit goalkeeper Mikhail Kerzhakov made a fine flying save to his right to keep out Mapou Yanga-Mbiwa's sweetly struck volley.
In a frantic spell Zenit should have been 2-0 up just shy of the half-hour mark. Hulk showed great feet in the area to find Dzyuba in plenty of space but the striker slipped at the crucial moment and shot high over the crossbar.
Soon afterwards, Hulk forced a brilliant fingertip save from Anthony Lopes with a stinging 25-yard drive.
However, Lyon started the second half well and were level in the 49th minute.
Mathieu Valbuena sprayed a brilliant ball out wide to Christophe Jallet on the right and he volleyed a first-time cross into the penalty area where Lacazette finished with a wonderful backheel flick.
But Lyon were level for just seven minutes as Hulk shrugged off a couple of challenges and burst forward before unleashing a wonderful left-foot shot from 30 yards that swerved into the left-hand corner for his third goal of the competition.
Shortly afterwards, Dzyuba should have put the game beyond doubt when he found a gaping hole in the Lyon defence only to lift his shot over Lopes and wide of the post.
The miss was almost punished when Samuel Umtiti's fierce long-range effort flew narrowly wide of the left-hand post.
But Zenit made sure eight minutes from the end. A swift counter led to Shatov playing in Danny, who applied the simple finish from inside the penalty area.
Get the best features, fun and footballing frolics straight to your inbox every week.