The visitors were in front after 23 minutes thanks to an own goal by John Brooks and the defender's day went from bad to worse when he conceded a penalty soon after for bringing down Sven Schipplock.
Sejad Salihovic converted that spot-kick and netted another in the 39th minute after Andreas Beck was fouled by Nico Schulz in the area.
Schipplock added a fourth from close range in the 75th minute and Sebastian Rudy completed the rout late on in front of a stunned Olympiastadion crowd.
Bottom club Freiburg suffered late heartbreak as they surrendered a 2-0 lead to draw 2-2 with Hannover on home turf.
Mike Frantz opened the scoring in first-half stoppage time and Freiburg looked on course for their third league win of the season when Marc-Oliver Kempf doubled the advantage nine minutes from the end.
However, Leonardo Bittencourt pulled one back almost immediately and Joselu's 93rd-minute strike earned a point for Hannover.