The home side thought that they had broken the deadlock inside the opening 10 minutes, but an incorrect offside call from the assistant referee prevented Stefan Kiessling from celebrating.
© Getty Images
Bayern, who clinched the title last weekend, rested key players ahead of their Champions League meeting with Barcelona on Wednesday and struggled to cope with Leverkusen for much of the first half.
Jedvaj came close to making an impact at the other end later in the first half when he fired over following a poor header from Rafinha.
Leverkusen needed just 10 second-half minutes to take the lead as Calhanoglu delighted the home fans with a stunning free kick which left Manuel Neuer helpless.
Bayer found it tough to put Leverkusen under pressure for an extended spell, and Jedvaj threatened again when he struck another shot over from a good position in the box.
Brandt was introduced by Roger Schmidt late on, and the in-form teenager made an instant impact by wrapping up the win with a fine finish, after Karim Bellarabi had invited the attention of three Bayern defenders with a clever run.
The victory means that Leverkusen currently occupy the final automatic Champions League qualifying spot, but they could be replaced in third if Borussia Monchengladbach beat Hertha Berlin on Sunday.