Despite having failed to properly test goalkeeper Vyacheslav Malafeev with a number of chances Liverpool seemed to be managing to hold on in their last-32 Europa League first-leg tie in the sub-zero Petrovsky Stadium.
But with 20 minutes remaining Hulk powered home a brilliant 30-yard strike before the substitute Sergei Semak converted from close range moments later.
Liverpool - and in particular top scorer Luis Suarez - will have to rediscover their shooting powers for the return leg otherwise their last chance of a trophy this season will be lost.
Manager Brendan Rodgers insisted he planned to give this competition due significance once Lvierpool were into the knockout stage, but an unexpected FA Cup exit to Oldham and a failure to pick up the pace in the Premier League made it seem even more important.
For that reason he selected virtually a full-strength side with captain Steven Gerrard starting his first away game in Europe this season.
Concern had been expressed before the match about possible racist abuse targeting Liverpool's black players - of which Glen Johnson and Raheem Sterling were included in the starting line-up - but the Zenit fans, in fact, contributed plenty to generating a good atmosphere.
There were unconfirmed reports of isolated monkey chants at pitch level but nothing which was audible up in the stands.
The Russian champions fed off the fervour of their fans and displayed a sharpness that defied their two months without a competitive match as Alexander Kerzhakov and Hulk, the latter from distance, were denied early on by Jose Reina. In between Suarez responded by turning Nicolas Lombaerts and rolling a shot past goalkeeper Malafeev and across goal but wide of the far post.
The Belgian defender was not having the best of nights as he then inexplicably passed the ball to Suarez who drove into the area, rounded Malafeev but was denied from a narrow angle as Lombaerts recovered to block.
However, Liverpool, in trying to play a cagey European-style game, sank further back into their own half and only served to invite on the hosts, who saw Danny's header easily saved and Hulk hit the post.
Liverpool's attacking was sporadic at best on a pitch cutting up badly, but five minutes before half-time Suarez almost pinched a cheeky goal when the Zenit defence got themselves in a mess and Suarez backheeled Sterling's low cross just wide.
Johnson had a shot blocked by Malafeev after a long, driving run early in the second half while Suarez fired wide again as Liverpool could not find a clinical edge inside the penalty area.
With 20 minutes to go Jordan Henderson was dispossessed and Hulk, who had previously threatened without being worryingly dangerous, smashed a shot past Reina, who had no chance.
The defending for the second goal less than three minutes later raised plenty of questions as the right-back Alexander Anyukov's low cross was drilled home at the far post by Semak.
Gerrard's free-kick forced a low save from Malafeev but no-one was on hand to capitalise on the rebound but Zenit then searched hard for a third goal but Viktor Fayzulin saw his long-range effort deflected narrowly wide.
Liverpool will require a much-improved performance in the second leg if they are to turn around the deficit and keep their quest for silverware alive.