Both teams had chances inside the first quarter of an hour, most notably Olivier Giroud's effort which cannoned off the post for the Gunners.
The Croatian champions surprisingly took the lead in the 24th minute through Josip Pivaric, who's shot was aided by Alex Oxlaide-Chamberlain's deflection, to be later marked down as an own-goal to the England international.
Arsenal suffered a demoralising setback in the 40th minute when French striker Giroud was sent off for his second yellow card.
Zagreb made their man advantage count in the second half, as Junior Fernandes directed a towering header past David Ospina to put the hosts in a commanding position with half an hour left to play.
It was the England striker who made an impact off the bench to give his side a lifeline, latching on to Alexis Sanchez's pass to slot past goalkeeper Eduardo in the 79th minute.
Dinamo ultimately held on however, to inflict defeat on Arsenal in their Group F opener, while remarkably extending their unbeaten run in all competitions to 42 matches.
2015/16 UEFA CHAMPIONS LEAGUE - GROUP F
Match report by Joe Baker