The Russian champions have been thrust into chaos following player divisions that have been played out in public following the big-money arrivals of Hulk and Axel Witsel last month.
That has culminated in Zenit winning just one of their past five league games and seen captain Igor Denisov exiled for his claims the new signings are over-paid compared to their colleagues.
Milan themselves arrived in Russia under pressure, sitting 11th in Serie A, but left celebrating their first Champions League win of the campaign after surviving a brave Zenit comeback.
Goals from Urby Emanuelson, following a wicked deflection, and Stephan El Shaarawi inside the opening 16 minutes fired the visitors ahead but Zenit replied in the minutes either side of half-time through Hulk and Roman Shirokov.
But the luckless hosts fell behind for good 15 minutes from the end when again a deflection cost them as Tomas Hubocan inadvertently turned the ball into his own net.
There was still time for Zenit to attempt another rally but Milan goalkeeper Christian Abbiati, who pulled off a string of stunning saves throughout, somehow turned away a late Aleksandr Anyukov strike.
The burden of pressure on Zenit before kick-off was quickly intensified when they fell 2-0 behind.
With Milan's own form under the microscope they came out firing and while their opener on 13 minutes owed to some fortune, when Emanuelson saw his free-kick take a deflection off the wall to wrong-foot Viacheslav Malafeev, their lead was hardly unwarranted.
Their second arrived just three minutes later via a splendid El Shaarawi run and finish, the midfielder leaving at least three Zenit players standing in his wake.
Zenit, however, proved their resilience - questioned at times in the difficult recent past - as they peppered Abbiati in the away goal for the remainder of the half.
Hulk led the assault as first his stinging drive forced a fine diving fingertip save from Abbiati.
The veteran goalkeeper then moved quickly to catch a Shirokov header, from a corner delivered by Hulk, who then blasted a low free-kick that drew the best stop of the half from Abbiati.
Hulk finally broke through with the last kick of the first period when Shirokov played him in behind the defence and his angled drive squirmed under Abbiati's outstretched arm.
It loomed as a pivotal moment as Zenit equalised within minutes of the resumption.
This time it was Hulk who turned provider with his corner finding Shirokov unmarked at the back post to head past Abbiati.
Suddenly Milan's recent failings were under examination and they responded with a fluid forward move that ended with Kevin-Prince Boateng wastefully heading wide across goal.
The game brimmed to the boil, with both teams desperate to claim a win to at least exile some of their recent woes, and it was the visitors who got the decisive goal.
Giampaolo Pazzini only got the barest of touches on Riccardo Montolivo's low cross but it was enough to catch Tomas Hubocan's arm and wrong-foot Malafeev for a second time.
Again Zenit battled back but again Abbiati frustrated them as he flew across his goal to claw away a full-blooded Anyukov drive and secure a win to ease the pressure on their boss Massimiliano Allegri.