Pierre-Emerick Aubameyang crossed for Henrikh Mkhitaryan to head in Dortmund's opener just after halftime, then scored seven minutes later. Kagawa sealed it with a fine effort near the end.
It was Dortmund's first game since Klopp announced on Thursday his end-of-season departure.
Sebastian Rode's 38th-minute strike and an own goal from Andreas Beck in injury time were enough for Bayern to move another step to claiming the title.
Also, Bayer Leverkusen routed Hannover 4-0 to move to third, Mainz won 3-2 at Freiburg, and Hertha Berlin drew 0-0 with visiting Cologne.
Augsburg was hosting Stuttgart later.