Luis Castillo added six strong innings for the Mariners, who rebounded from Monday’s extra-innings loss to take two of three from Los Angeles.
Seattle kept pace in the AL West and AL wild card races, with Houston facing Oakland and Texas and Toronto playing each other later Wednesday.
Rodríguez lined an RBI double off the left-field wall in the third to put the Mariners on the board.
With two outs in the fifth and a 2-1 lead, Los Angeles intentionally walked Rodríguez despite Ty France being on first.
Cal Raleigh and Teoscar Hernández made the Angels pay.
After Los Angeles brought in reliever Jimmy Herget, Raleigh lined an RBI single to right field to drive in France, who slid into home plate to beat the throw from Brett Phillips. Hernández then followed with an RBI single that deflected off second baseman Brandon Drury’s glove, scoring Rodríguez for a 3-2 lead.
Rodríguez is just the third player in the majors this season to be intentionally walked without an open base.
Castillo (13-7) allowed two runs and three hits in a 104-pitch outing. He struck out eight and walked three.
Los Angeles threatened against Justin Topa in the seventh, putting runners on first and second with no outs. But Topa escaped the jam, highlighted by a pickoff that caught Jordyn Adams in a rundown between second and third.
The Angels again put the tying run on second in the eighth, but Matt Brash struck out Matt Thaiss to end the inning.
Andrés Muñoz worked the ninth for his 13th save. Cal Raleigh ended the game by throwing out Phillips at second base.
Phillips hit a solo homer in the third and Drury added an RBI double in the fourth. José Suarez (1-3) took the loss for the Angels, who used seven pitchers in a bullpen day.