The high-tempo German side had by far the best first half, with Brazilian-born striker Cacau, fresh from four goals against Cologne on Saturday, stunning the Catalans with a goal on 25 minutes.
A perfectly delivered cross from Timo Gebhart found Cacau on the far post, who headed it powerfully past Victor Valdes' outstretched arm. Three minutes later Stuttgart had a strong shout for a penalty for handball turned down by referee Bjorn Kuipers as Pavel Pogrebnyak's cross hit Gerard Pique's arm.
A string of other chances followed in the Mercedes-Benz Arena as the home side ran rings around the ragged defending European champions.
On 18 minutes, in one of Barca's surprisingly rare forays into the Stuttgart half, Argentinian star Lionel Messi had a shot blocked, but their best chance came on 39 minutes as Messi shot from just outside the area.
Former Arsenal old boy Jens Lehmann got a hand to it, and the ball rolled perilously close to the target, only to hit the post and bounce back into the arms of a grateful 'keeper.
"We could have beaten Barcelona tonight," said Lehmann.
And Stuttgart coach Christian Gross, who has turned his side's fortune around after taking over from Markus Babbel before Christmas, agreed the Bundesliga side had blown their chance to beat the defending champions.
"We should have scored a second goal in the first half," Gross said. "We had clear chances."
Zlatan Ibrahimovic made it 1-1 on 52 minutes, heading it past Lehmann at close range after the German managed to block his first attempt.
Ibrahimovic admitted that the Germans had outperformed them in the first-half.
"They (Stuttgart) created good chances and controlled the game," said the Swedish striker. "In the second-half we improved and I scored the goal which is good for the
team. 1-1 is a good result. And as for the dream of retaining the trophy....absolutely it is still on."
Barca never looked like losing as Ibrahimovic's goal knocked the stuffing out of Stuttgart and they became increasingly desperate.
In the last 10 minutes, Barca slowed the tempo right down, and the tired Germans hardly got a look-in.
On 67 minutes, a shot from Ibrahimovic hit Italian defender Cristian Molinaro on the upper arm on the goal line, but no handball was given.
The Catalans were almost back to full strength with the return from injury of midfielder Xavi Hernandez, who had had a thigh strain, and Ibrahimovic.
Still absent though was defender Dani Alves, out of action since earlier in the month with a leg muscle problem, as well as Malian midfielder Seydou Keita and French defender Eric Abidal.
Despite scoring Barca's second of four against Racing Santander on Saturday, fellow Frenchman Thierry Henry started on the bench, a place becoming painfully familiar to the 32-year-old former Arsenal star.