|Saracens (6) 20|
|Tries: Malins 2 Cons: Lozowski 2 Pens: Spencer 2|
|Leicester Tigers (21) 28|
|Tries: Tuilagi, Bateman, Veainu, Holmes Cons: Toomua 4|
Leicester kept their hopes of a top-four finish alive with victory at Saracens, who missed the chance to go back to the top of the Premiership.
The Tigers were clinical in the first half as Manu Tuilagi, Greg Bateman and Telusa Veainu all crossed.
Tuilagi fed Jonah Holmes to notch the visitors' fourth try and secure a bonus point after the break.
Max Malins scored twice in the closing stages but his brace came too late for Sarries to mount a comeback.
Saracens saw their five-match winning streak in the league come to an end, but it was a display littered with uncharacteristic errors from the back-to-back European champions as Leicester's half-back pairing of Sam Harrison and Matt Toomua exercised control of the game.
Tuilagi and Bateman both burst through gaps in the home defence from inside the 22 to touch down but full-back Veainu's try on the stroke of half-time was the pick of the scores, as he picked up Toomua's offload 30 metres out and carved his way towards the line before holding off Ben Spencer and crashing over.
Sarries failed to take advantage of early pressure after the break, with winger Nathan Earle having a possible score ruled out by the television match official for failing to clearly ground the ball and then knocking on with the try-line gaping after a well-worked scrum.
Leicester capitalised, as Tuilagi latched on to a loose pass from Alex Lozowski and held off Marcelo Bosch before allowing Holmes the score under the posts.
Malins showed smart footwork to pull two tries back in the final 12 minutes, with his second coming after Leicester replacement Michele Rizzo was sent to the sin-bin for two infringements in the space of a minute.
Leicester's first league win over Sarries since March 2016 leaves them seventh, four points off fourth-placed Newcastle, while Saracens trail leaders Exeter Chiefs by four points.
Saracens director of rugby Mark McCall told BBC Radio London:
"We were very poor and never really recovered from the first half, when we were on the back foot for the whole half.
"We lost that physical battle and weren't on it as we normally are.
"If Nathan had touched down on one of those two chances at the start of the second half it might have given us something to hang our hats on.
"Some of the youngsters gave the team some much-needed energy in the last 20 minutes. It is a shame we couldn't have snuck in at the end, as it would have been nice to get a losing bonus point."
Leicester director of rugby Matt O'Connor told BBC Radio Leicester:
"To come down here and win for the first time was a huge effort, but they had a couple of blokes injured in the first half and loads out so we need to keep it in perspective.
"What we have got now is a genuine belief that everyone understands what they are trying to deliver on.
"We won a lot of collisions in the close channels and got in behind them, and when we did we were clinical enough to execute. We worked incredibly hard and didn't feed them opportunities to get into the game.
"The five points was important, and keeps us very much in the mix so we have to make sure we keep our foot on the pedal."
Saracens: Goode; Earle, Bosch, Barritt, Wyles; Lozowski, Spencer; Barrington, Brits, Figallo, Day, Isiekwe, Clark, Burger, Wray.
Replacements: Spurling, Thompson-Stringer, Lamositele, Flanagan, Vailanu, Whiteley, Malins, Segun.
Leicester: Veainu; Thompstone, Tuilagi, Owen, Holmes; Toomua, Harrison; Bateman, Polota-Nau, Mulipola, Fitzgerald, Kitchener, Williams, O'Connor, Kalamafoni.
Replacements: T Youngs, Rizzo, Cilliers, Wells, Hamilton, Simmons, J Ford, Tait.
Sin-bin: Rizzo (79).
Referee: Craig Maxwell-Keys.