Former Bayern player Mitchell Weiser scored the only goal as Bremen earned their first win over Bayern since 2008, to leave the defending champions seven points off Leverkusen.
Tuchel accused his team of playing for most of the game "as if we had a 10-point lead and a Champions League game coming up on Tuesday", pointed criticism of a team which has won the German league 11 years running.
Tuchel reeled off a list of problems with Bayern's game, from a lack of movement to allowing a "crazy" number of counter-attacks, and suggested his team had only realised the seriousness of the situation in the last 20 minutes.
"A deserved loss," he summarised. "Because 20 minutes just aren't enough."
Bremen repeatedly tested Bayern on the counter in the first half — and had a goal for Justin Njinmah ruled out for an earlier foul — while Bayern made little progress getting through the compact Bremen defense.
Weiser — who previously played for both Leverkusen and Bayern — gave Bremen the lead in the 59th minute with a moment of individual skill as he beat left back Alphonso Davies out wide, cut inside and blasted a shot past Manuel Neuer in the Bayern goal.
Bayern had the Bremen goal under siege after that and came close to scoring with Mathys Tel's header that bounced off goalkeeper Michael Zetterer, against the post, back onto Zetterer and into the post again before Bremen could clear. Tel dragged another shot just wide of the far post in the final seconds of stoppage time.
While Bayern trail Leverkusen, who beat Leipzig 3-2 on Saturday, they hold a game in hand against struggling Union Berlin on Wednesday, which was rescheduled from last month because of snow.
Bayern were playing for the first time in nine days, a spell of rest Tuchel's team had used for a mid-season training camp in Portugal, before attending Friday's memorial service for Franz Beckenbauer.
Harry Kane failed to add to his 22 goals in the Bundesliga so far this season. It was only his fourth league game of the season without a goal since joining Bayern.
Elsewhere on Sunday, Augsburg recovered from a goal down to beat Borussia Monchengladbach 2-1. American forward Jordan Pefok gave Gladbach the lead before two goals in the space of four minutes from Phillip Tietz and Arne Engels for Augsburg, who move up to 10th with Gladbach 12th.
The game was delayed nearly 10 minutes in the first half as Gladbach fans threw objects onto the field in the latest in a series of protests in Germany against the league's plans to involve an outside investor.
Austrian defender Stefan Lainer came off the Gladbach bench to a standing ovation in his first game since he was diagnosed with a form of cancer in July.