Weaver (5-5) allowed a first-inning single to Doug Bernier and then retired 21 of the next 22 batters before Aaron Hicks collected Minnesota's only other hit in the eighth.
The right-hander issued one walk and struck out nine, tossing 76-of-114 pitches for strikes.
Ernesto Frieri finished up with his 25th save as Los Angeles avoided a three-game sweep.
Albert Pujols provided the game's only run with a first-inning RBI single.
Twins starter Mike Pelfrey (4-8) absorbed the hard-luck loss, surrendering just the one run on five hits over six frames. He walked one and struck out five.