The Italian missed a spot-kick after Shinji Okazaki had opened the scoring, thus allowing Matthias Ginter's own goal to secure the undefeated hosts a fine win
The visitors dominated Saturday's opening hour, before Jairo created the opener for Okazaki, the Japan striker scoring a sixth goal in seven games this season, in what was his 100th Bundesliga appearance.
Then, after Loris Karius had saved a Ciro Immobile penalty, Jairo was again the architect as Matthias Ginter put through his own net to make sure of the points, which lifted Mainz to second in the table.
Klopp, a Mainz legend as both player and coach, could only look on as his side spurned several presentable chances - striker Adrian Ramos particularly guilty - in a week in which they had demonstrated strong credentials in the Champions League with a comprehensive win over Arsenal.
Mainz are yet to taste defeat in the league this season, but a second loss of the season for Dortmund presents Klopp with a major issue as they look to assert domestic dominance.
The hosts fielded Jonas Hofmann against his parent club and although Dortmund welcomed Lukasz Piszczek back into their starting XI, but their mounting injury problems saw Klopp start 20-year-old Ginter in defence and Milos Jojc in midfield, while he also replaced Immobile with Ramos as the spearhead of the attack.
And it was the latter who spurned the game's first meaningful opportunity after 13 minutes, the Colombia striker nodding Pierre-Emerick Aubameyang's right-wing cross wide from seven yards.
Shinji Kagawa's lost control at the vital moment after some spellbinding footwork and Mainz's own Shinji then threatened, Okazaki pouncing on a loose ball and stabbing the ball goalwards, only for Roman Weidenfeller to make a fine save low to his right.
Ramos' woes went on shortly before half-time as he slammed Piszczek inviting low cross from the right onto the post.
The Colombian was again denied as Dortmund began the second half on the front foot, Junior Diaz's outstreched leg saved Mainz after good work from Kevin Grosskreutz, with the Costa Rican hacking a deflected Aubameyang strike off the line from the resulting corner.
Against the run of play, Mainz took the lead. Substitute Jairo did well to keep the move alive down the right and cross for Ozakazi, who escaped Ginter’s attention and slotted home.
Yet minutes later hero almost turned villain. Immobile, on for Ramos, unleashed a shot inside a crowded area, which hit a sliding Okazaki on the arm and prompted referee Gunter Perl to award a penalty.
The Italy striker stepped up himself, but his firm strike was superbly kept out by the diving Karius.
It got worse for Dortmund in the 73rd minute.
Jairo’s pace got him clear of the defence and he cut the ball across the penalty area towards Hofmann. Ginter slid in to intercept the ball, but could only manage to divert it into the back of his own net.