Adam Dunn singled off Hisanori Takahashi (0-3) to start the 10th and was replaced by pinch-runner John Danks. David Carpenter came in to pitch and, after striking out Paul Konerko, surrendered the walk-off clout -- Rios' second homer of the game.
The Chicago outfielder finished 3-for-4 with four RBI and three runs scored as American League Central-leading Chicago took the opener of a three-game set.
A.J. Pierzynski added a three-run homer for Chicago.
Mike Trout unleashed a two-run clout and Albert Pujols went 2-for-4 with a solo shot for the Angels.
The Angels played the game under protest after a first-inning play on which they claimed Konerko was outside the baseline on an attempted double play.
The White Sox had the bases loaded with no outs when Konerko grounded to Alberto Callaspo at third and the Angels got the lead runner out at home. Konerko was safe at first when LA catcher Chris Iannetta's throw to first pulled Albert Pujols off the bag.
Rios then drove in a run with a single and Pierzynski homered to give Chicago a 4-1 lead.