Fit-again Manu Tuilagi had put Tigers 8-0 up early on but Bath hit back with Max Clark's brace and a Semesea Rokoduguni breakaway before the break.
The hosts pressed in the closing stages with debutant Jonny May's two tries.
But Bath, who played with just 13 men for much of the latter stages and were seemingly overrun late on, survived.
Defeat ensured an unhappy return to life as a Leicester player for England fly-half George Ford, against the club he left in the summer.
It was a disappointing afternoon for Ford which included missed opportunities from the tee, most significantly a missed conversion from a promising angle after May's first score.
Success at the line-out was key to Bath's victory, typified by Luke Charteris' intervention to halt Tiger's final attack, after the hosts had kicked for the corner in overtime.
Leicester, who finished seven points above fifth-placed Bath last season, had not failed to to win their opening match of a season since 2011.
Leicester head coach Matt O'Connor told BBC Radio Leicester:
"We gave Bath too big a start. We had chances to get scoreboard pressure in the first 20 minutes and we didn't take them.
"There were a lot of really good performances but collectively we can be significantly better. We want to be playing the first 70 minutes like we played the final 10.
"We did enough in the second half to snatch it but it probably wouldn't have been justified."
Bath head coach Tabai Matson told BBC Radio Bristol:
"The forward pack gave a great platform for us and we'll walk away and realise what a significant performance this is.
"You expect to be bullied at Welford Road and we stood up to them physically and then took our chances.
"We realise we can be physical away from home and it's our endeavour to compete that is important."
Leicester: Veainu; Malouf, Tuilagi, Toomua, May; George Ford, Ben Youngs; Genge, Tom Youngs (capt), Mulipola, Barrow, Kitchener, Ryan, O'Connor, Kalamafoni.
Replacements: Thacker, Bateman, Cole, Williams, Hamilton, Harrison, Joe Ford, Tait.
Bath: Watson; Rokoduguni, Joseph, Clark, Banahan; Priestland, Cook; Obano, Dunn, Palma-Newport, Charteris, Stooke, Garvey (capt), Louw, Faletau.
Replacements: Walker, Auterac, Perenise, Phillips, Grant, Fotuali'i, Burns, Tapuai.
Bath survived a frantic finale which saw three of their players shown yellow cards to hold on for a first away win at rivals Leicester Tigers since 2003.