Carlo Ancelotti's side looked leggy throughout Saturday's encounter at the Rhein-Neckar-Arena, and Uth made sure that Hoffenheim - the last side to beat Bayern in the Bundesliga back in April - took full advantage.
Starting up front in the absence of the injured Sandro Wagner, Uth capitalised on sloppy defending from Mats Hummels and Javi Martinez to put Hoffenheim ahead 27 minutes in, with Bayern having failed to test Oliver Baumann at the other end bar an early opportunity for Robert Lewandowski.
And despite a positive start to the second half from Bayern, Uth doubled his tally and made it five goals in his last five games in all competitions with a precise finish at the culmination of a swift Hoffenheim counter-attack six minutes after the restart.
The visitors pressed late on, but a late chance for Martinez - set-up by James Rodriguez on his Bayern debut - was all they could muster, with Hoffenheim holding firm to move level on points with current league leaders Borussia Dortmund.
On his 400th Bayern appearance, Thomas Muller nearly turned provider with a pinpoint cross into Lewandowski, whose first-time effort clipped off the crossbar on its way over.
Despite Bayern's dominance, Hoffenheim kept the champions at arm's length, and Julian Nagelsmann's tactics paid off when quick thinking from Andrej Kramaric from a throw-in caught out Hummels.
Uth reacted swiftly, stealing in unchallenged to drive into the area and plant a neat finish past Manuel Neuer at the near post.
In search of an immediate response, Lewandowski tried his luck with a free-kick from range, but the Poland striker's dipping shot inched wide of the left-hand upright.
Bayern's determination to restore parity stretched their defence, though, with Neuer doing well to keep out Steven Zuber's low drive prior to the interval, while Corentin Tolisso headed straight at Baumann.
Kingsley Coman was the next to test Hoffenheim's defence, drilling over from the edge of the hosts' area after cutting inside from the left flank.
But it was not to be for Bayern, who found themselves further behind when Uth side-footed home from 10 yards out having latched onto Zuber's cut-back.
Ancelotti was swift to make a change, bringing on Arjen Robben, though it was the introduction of Bayern's next substitute - James - which almost paid dividends late on.
Colombia star James whipped in a delightful free-kick that Martinez met, but, with the aid of the crossbar, Baumann managed to keep it out as Hoffenheim held firm for a well-deserved victory.
Key Opta stats:
- Thomas Muller made his 400th appearance in competitive games for Bayern Munich – since the club’s promotion to the top flight in 1965, only 13 players appeared in more games.
- Mark Uth became the first player to score a brace for Hoffenheim against Bayern.
- On matchday three, this is the earliest Bayern loss in a Bundesliga season since 2011-12. Back then they had lost on matchday one to Borussia Monchengladbach.
- Hoffenheim have kept clean sheets in their last four league home games – a new record for the team.