Titleholders Dortmund were left fuming after a 36th-minute incident when defender Marcel Schmelzer was judged by referee Wolfgang Stark to have stopped Bas Dost's goalbound effort with his hand.
Stark later aplogised after replays showed the left back's knee blocked the shot following minimal and unintentional contact with his fist. Schmelzer was dismissed and Diego converted the penalty to make it 1-1.
Dost decided the match with a 73rd-minute breakaway goal and Dortmund coach Juergen Klopp refused a handshake from opposite number Lorenz-Guenther Koestner at the end.
Leaders Bayern Munich won 2-0 at lowly Augsburg to go 11 points clear and Vedad Ibisevic scored a hat-trick in Stuttgart's 3-1 win over fading Schalke, where both teams had a player sent off.
Fifth-placed Schalke extended their winless league run to five matches, heaping pressure on outspoken coach Huub Stevens, allowing Stuttgart to pull level with them on 25 points.
Ibisevic side-footed the hosts ahead after two minutes and put them back in front with a 38th-minute penalty after Ciprian Marica had levelled for Schalke.
He completed his hat-trick just after the hour before Stuttgart's Gotoku Sakai and Schalke's Jermaine Jones were given straight red cards for bad tackles within minutes of each other.
A Thomas Mueller penalty, harshly awarded for handball by Gibril Sankoh, and second-half goal from Mario Gomez left Bayern with 41 points from 16 games.
Eintracht Frankfurt scored four second-half goals to beat visitors Werder Bremen 4-1 and moved into fourth, level on 27 points with Dortmund.
"I've looked at it again later and unfortunately it was an error of perception on my part," referee Stark said after the Dortmund match. "I'm sorry, that should not happen."
"That was really tough," said Dortmund coach Klopp. "With 11 against 11, there would have been only one winner.
"Everyone saw that it was not a penalty and not a red card."
Dortmund, unbeaten in their previous 12 games, went ahead after six minutes when a Marco Reus free-kick evaded a pack of players in the penalty area and went straight into the goal.
That brought only a muted cheer as the crowd joined the so-called 12:12 protests against new security measures proposed by the German league.
The fans stayed silent for the first 12 minutes and 12 seconds of the match before bursting into life by throwing a shower of yellow toilet rolls on the pitch.
Wolfsburg barely had a look in until the penalty incident when Schmelzer blocked Dost's goal-bound shot with his knee and, although the ball may have brushed his fist as well, it was clearly unintentional.
Diego ignored the crescendo of booing from the wall of 25,000 fans in the standing-only Suedtribune in front of him and coolly converted the penalty.
"When there is a handball on the goal line, the rules say it is a red card. Do I have to apologise for that?" said Wolfsburg coach Koestner.
Schmelzer's dismissal would have meant an automatic one-match suspension, part of what is known as the 'triple punishment', until the league accepted it was a mistake.
Amid general disbelief, Wolfsburg defender Naldo hooked in a free-kick taken by fellow Brazilian Diego five minutes later to put Wolfsburg ahead.
Dortmund levelled from another penalty in the 61st minute, Jakub Blaszczykowski converting after Simon Kjaer clattered into Robert Lewandowski.
But the irrepressible Diego capped a superb performance by setting Dost on his way in the 73rd minute for the Dutchman to calmly poke the ball past Roman Weidenfeller.
- Sports & Recreation
- Marcel Schmelzer