Borussia Monchengladbach beat Bayern Munich with a 92nd-minute Ramy Bensebaini penalty to retain top spot in the Bundesliga and move seven points clear of the reigning champions after a dramatic second half at Borussia Park.
Perisic, who was introduced after 20 minutes for the injured Corentin Tolisso, made up for Leon Goretzka's near-miss with a header by giving Bayern the lead, but they held on to their lead for little more than 10 minutes.
Javi Martinez received a second yellow card for conceding the penalty that allowed Bensebaini to seal the win for Gladbach and deny interim Bayern boss Hansi Flick a much-needed win following the 2-1 defeat at home to Bayer Leverkusen on November 30.
Goalkeeper Yann Sommer nearly allowed a Joshua Kimmich shot to deceive him and put Bayern ahead, and Gladbach only managed an effort of their own when Alassane Plea sent an ambitious effort straight at Manuel Neuer shortly before the interval.
Bayern, now seven points adrift in the title race, went ahead at Borussia Park when Ivan Perisic fired home just after the break, but defender Bensebaini headed Gladbach level with an hour gone.
It was another wasteful performance from Bayern who should have scored several goals in a dominant first half thorugh Thomas Mueller and top scorer Robert Lewandowski.
Surviving on less than 40 percent possession, Gladbach drew level on the hour mark against the run of play as they scored off their first clear chance.
The game turned in the 90th minute when Spain worldwide Martinez gave a penalty away and was sent off for a clumsy tackle on Marcus Thuram in the area.
The Spain worldwide trudged off after being shown second a yellow card as Bensebaini showed nerves of steel to convert the penalty.
Borussia Dortmund eased the pressure on coach Lucien Favre to go third with a 5-0 home romp against Fortuna Duesseldorf, who dropped into the bottom three, as England winger Jadon Sancho and club captain Marco Reus both scored twice.
Freiburg moved up to fifth, a point above Bayern, with a 1-0 win at home to Wolfsburg thanks to a second-half victor from Jonathan Schmid while mid-table Augsburg enjoyed a 2-1 win at home to Mainz.