FORUM: Have any thoughts? If so, join the debate on Sport24's all-new Forum!
Shirokov's treble came as Zenit easily overcame Pacos Ferreira 4-1 in their first leg in Portugal.
At Eindhoven, Stephan El Shaarawy headed seven-time European champion Milan ahead after 15 minutes but Jeffrey Bruma nodded in equalizer on the hour.
Tuesday's other matches saw teams claim two-goal advantages going into next week's second legs.
Kazakhstan champion Shakhter Karagandy stunned Scottish club Celtic 2-0, Real Sociedad won at Lyon by the same score and Viktoria Plzen beat Maribor 3-1 in the Czech Republic.
Champions League play-offs first-leg results on Tuesday:
Shakhter Karagandy (KAZ) 2 (Finonchenko 12, Khizhnichenko 77) Celtic (SCO) 0
Lyon 0 Real Sociedad 2 (Griezmann 17, Seferovic 50)
Pacos de Ferreira (POR) 1 (Andre 58) Zenit St. Petersburg (RUS) 4 (Shirokov 27, 60, 90, Degra 85-og)
PSV Eindhoven: (NED) 1 (Matavz 60) AC Milan 1 (El Shaarawy 15)
Viktoria Plzen 3 (Cisovsky 8, Darida 58, Duris 89) Maribor (SLO) 1 (Mejac 66)
Playing Wednesday:
Dinamo Zagreb (CRO) v Austria Vienna (AUT)
Ludogorets Razgrad (BUL) v Basel (SUI)
Steaua Bucharest (ROM) v Legia Warsaw (POL)
Schalke 04 (GER) v PAOK (GRE)
Fenerbahce (TUR) v Arsenal (ENG)