Andy Butler öppnade scoring innan ytterligare mål från Liam Mandeville och Matty Blair gav Rovers en befallande halvtid ledning.
Tom Pett och Fraser Franks drog tillbaka målen för Stevenage, innan Jamie Jones eget mål verkade avsluta deras comeback förhoppningar.
Men Rowan Liburd gjorde värdarnas tredje med en minut kvar som Rovers desperat klängde på för att gå en punkt klart i toppen.
Doncaster hade slagit i fronten efter Butler utnyttjade dåligt försvar för att gå hem på 27 minuter.
Mandeville slog sitt sjätte mål i så många spel att dubbla besökarnas ledning på 34 minuter och Blair ytterligare ökade Doncaster fördel två minuter senare med en fin volley.
Pett slitsade hem på 61 minuter, innan Franks krossade hem en lysande halvvolley på 72 minuter.
Jones buntades in i sitt eget nät från John Marquis huvud, innan Liburd slog i 89: e minuten för att sätta upp en nervös finish.
Rapport från Pressföreningen.
Matchändar, Stevenage 3, Doncaster Rovers 4.
Andra halvlek, Stevenage 3, Doncaster Rovers 4.
Försök missade. Tom Pett (Stevenage) höger fotade skott från mitten av lådan är nära, men missar till höger.
Försök blockerat. Tom Pett (Stevenage) höger fotade skott från utsidan lådan är blockerad.
Mål!  Stevenage 3, Doncaster Rovers 4. Rowan Liburd (Stevenage) vänster fotade skott från mycket nära håll till nedre vänstra hörnet. Hjälpt av Michael Tonge efter ett hörn.
Hörnet, Stevenage. Förföljd av Craig Alcock.
Harry McKirdy (Stevenage) vinner en frispark i den defensiva halvan.
Foul av Tommy Rowe (Doncaster Rovers).
Tom Pett (Stevenage) vinner en frispark i defensiva halvan.
Foul av Niall Mason (Doncaster Rovers).
Hörnet, Stevenage. Förföljd av Matty Blair.
Handboll av Fraser Franks (Stevenage).
Ersättning, Doncaster Rovers. Andy Williams ersätter James Coppinger.
Hörnet, Doncaster Rovers. Förföljd av Dean Wells.
Foul av Rowan Liburd (Stevenage).
John Marquis (Doncaster Rovers) vinner en frispark på vänsterflygeln.
Dale Gorman (Stevenage) vinner en frispark på högerkanten.
Foul av Matty Blair (Doncaster Rovers).
Ett eget mål av Jamie Jones, Stevenage.  Stevenage 2, Doncaster Rovers 4.
Försöket räddades. John Marquis (Doncaster Rovers) huvud från mitten av lådan sparas i mitten av målet.
Foul av Ronnie Henry (Stevenage).
Tommy Rowe (Doncaster Rovers) vinner en frispark i den defensiva halvan.
Ersättning, Doncaster Rovers. Paul Keegan ersätter Liam Mandeville.
Mål!  Stevenage 2, Doncaster Rovers 3. Fraser Franks (Stevenage) höger fotade skott från vänster sida av lådan till övre högra hörnet. Hjälpt av Michael Tonge.
Handboll av Liam Mandeville (Doncaster Rovers).
Substitution, Stevenage. Rowan Liburd ersätter Steven Schumacher.
Jack King (Stevenage) vinner en frispark i anfallshalvan.
Foul av John Marquis (Doncaster Rovers).
Foul av Harry McKirdy (Stevenage).
Jordan Houghton (Doncaster Rovers) vinner en frispark i anfallshalvan.
Försök missade. Steven Schumacher (Stevenage) huvud från mitten av rutan missar till höger.
Hörnet, Stevenage. Förföljd av Craig Alcock.
Liam Mandeville (Doncaster Rovers) vinner en frispark i anfallshalvan.
Foul av Steven Schumacher (Stevenage).
Försök missade. John Marquis (Doncaster Rovers) höger fotade skott från höger sida av lådan missar till vänster.
Mål!  Stevenage 1, Doncaster Rovers 3. Tom Pett (Stevenage) vänster fotade skott från mitten av lådan till mitten av målet. Hjälpt av Ben Kennedy.
Försening över. De är redo att fortsätta.
Försening i match (Stevenage).
Jordan Houghton (Doncaster Rovers) vinner en frispark i anfallshalvan.
Foul av Ronnie Henry (Stevenage).
Tre mål inom 13 första-halv minuten hjälpte Doncaster Rovers gå toppen av League Two med en 4-3 seger på Stevenage.