Following a goalless first half, Ciro Immobile converted the only goal of the game from the penalty spot midway through the second half after Dayot Upamecano was sent off for a late challenge on Gustav Isaksen.
Lazio's defensive resilience was key to Mauricio Sarri's side claiming a famous win over six-time European winners Bayern, who were not at their clinical best and failed to register any of their 17 shots on target.
The pressure continues to mount on Bayern head coach Thomas Tuchel, whose team were condemned to their second successive defeat in the space of just four days following last weekend's disappointing 3-0 away loss to Bundesliga title rivals Bayer Leverkusen.
There was no love lost between Lazio and Bayern on Valentine's Day, and the former will take a narrow advantage into the second leg at the Allianz Arena in three weeks' time.
Bayern made a promising start to the contest and had two presentable chances inside the opening seven minutes; Joshua Kimmich firstly curled a right-footed effort from the edge of the area off target, before Harry Kane blazed over whilst leaning back just in front of goal after meeting a hooked cross from Thomas Muller.
Although Lazio looked solid and well-organised at the back, they initially struggled to advance in forward areas until the 21st minute when Luis Alberto unleashed a powerful, right-footed strike from outside the box that flew narrowly over the crossbar.
Upamecano had a pop from distance just before the half-hour mark, but the centre-back could only blast his shot well over the crossbar, shortly before Leroy Sane whipped an effort inches wide following a clever free-kick routine.
Jamal Musiala then came close to breaking the deadlock for the visitors five minutes before the interval when he scooped a left-footed shot from around eight yards out just over, following an intricate two-touch passing sequence between himself and Leon Goretzka.
Lazio burst out of the blocks after the break and should have opened the scoring three minutes into the second half when Isaksen found himself through on goal after meeting Alberto's defence-splitting pass, but Manuel Neuer was quick off his line and managed to block the Danish striker's shot.
Bayern struggled to re-establish their rhythm in the second half, much to the frustration of Tuchel on the touchline, and they were unable to get top scorer Kane into the game.
Drama unfolded on the 66-minute mark when Lazio were awarded a penalty and Bayern were reduced to 10 men as Upamecano was penalised for a stood-showing tackle on the ankle of Isaksen after Immobile had previously danced his way into the penalty area to set up his Danish teammate.
Lazio's all-time leading goalscorer Immobile stepped up and coolly stroked his effort from 12 yards into the bottom-right corner - his fourth Champions League goal of the campaign - sending Neuer the wrong way and the Lazio faithful into pandemonium.
Tuchel brought on Matthijs de Ligt for Goretzka in response to Upamecano's dismissal before switching up his attack for the final 10 minutes by swapping Sane and Muller for Mathys Tel and Eric Maxim Choupo-Moting in an attempt to net an important equaliser.
Bayern pushed forward in the closing stages, but in doing so looked vulnerable on the counter-attack, and Lazio were presented with a decent chance to double their advantage in stoppage time when substitute Pedro stung the gloves of Neuer from a tight angle.
Lazio eventually held on for a memorable victory and have boosted their hopes of reaching the Champions League quarter-finals for the first time since 1999-2000.
Bayern will endeavour to return to winning ways when they travel to VfL Bochum in the Bundesliga on Sunday, while Lazio shift their focus to a Serie A clash at home against Bologna.