It was the fourth match in a row that the red-hot Kane has scored two goals and has taken his Bundesliga tally to 30, just 11 shy of Robert Lewandowski's league record of 41 set in the 2020-21 season.
Despite Kane's heroics, it was Dortmund that took the lead in the 26th minute when Nico Schlotterbeck got above the defence to head home a Daniel Svensson free kick.
Dortmund looked dangerous on the counterattack through the first half as Bayern pushed for an equaliser but they were unable to add to their advantage before half-time.
After the break, Kane levelled proceedings with a thunderbolt of a volley after Serge Gnabry headed the ball onto him from a Joshua Kimmich cross.
The England international put the visitors ahead from the penalty spot in the 70th minute after Schlotterbeck fouled Josip Stanisic in the box.
Svensson thought he had rescued a point for Dortmund when he struck in the 83rd minute, but Bayern would have the final say as, four minutes later, Kimmich scored a lovely volley of his own to secure the points for the Bavarians.
Elsewhere in the Bundesliga over the weekend, Mathias Pereira Lage's strike deep into first-half stoppage time was enough to secure a 1-0 win for St Pauli over Hoffenheim.
Jovan Milosevic scored in the 57th minute and Hennes Behrens put the ball into his own net in stoppage time to hand Werder Bremen a 2-0 win over Heidenheim.
Kevin Diks slotted a late penalty to hand Borussia Monchengladbach a 1-0 win over Union Berlin, while Sheraldo Becker (67') and Jarell Quansah (86') traded goals in the 1-1 draw between Bayer Leverkusen and Mainz.
Rorigo Ribeiro (55') and Alexis Claude-Maurice (90+5') got on the scoresheet in Augsburg's 2-0 over Koln.