Monaco came from two goals down to snatch a 2-2 draw at Dinamo Zagreb in the Champions League at a rain-sodden Stadion Maksimir, with Denis Zakaria equalising with an 89th-minute penalty.