The visitors’ four-match winning streak was halted as Congolese hit-man Zanzala fired a shot under the body of Marko Marosi with just three minutes remaining.
Rovers just about edged the first period, but they could not find a way through. Danny Andrew saw a shot just clear the crossbar, with the same player also seeing a strike well gathered by Stanley’s loanee goalkeeper Connor Ripley.
Rovers then fluffed a terrific chance, Leeds United loanee Mallik Wilks found himself clean through on goal, but was denied by Ripley.
Stanley almost struck the opener but Sam Finley dragged his effort wide, before before Sean McConville crashed a shot against the crossbar.
McConville showed up again soon after the restart as his deflected shot drifted narrowly wide with Marosi well beaten.
Midway through the second half Rovers almost struck. Alfie May got up well to meet Niall Mason’s cross, only to head straight at Ripley.
Ben Whiteman then almost beat Ripley with a dipping free-kick, before Stanley went on to snatch their dramatic late victory.
Accrington: Ripley, Johnson, Ihiekwe, Hughes, Anderton, Clark, Brown (Zanzala, 77), Barlaser, McConville, Kee, Finley. Unused substitutes: Maxted, Richards-Everton, Nolan, Hall, Sykes, Mingoia.
Doncaster Rovers: Marosi, Mason, Wright, Butler, Andrew, Whiteman, Kane, Blair (Crawford, 77), Marquis, Wilks (May, 56), Coppinger (Taylor, 80). Unused substitutes: Lawlor, T Anderson, J Anderson, Amos.
Referee: Peter Wright.