Ernie Clement also had three hits, Chad Green (1-0) pitched one inning for his first win since April 20, 2022, and Jordan Romano got the final three outs for his 32nd save for Toronto. The Blue Jays (75-62) trail Texas by 1 1/2 games in the American League wild-card race.
Hunter Goodman had two hits for Colorado (50-86), and Chase Anderson was activated from the 15-day injured list to make his first start since late July for the Rockies. He allowed two runs on four hits in four innings.
Toronto broke a tie in the ninth against Justin Lawrence (4-7). Santiago Espinal led off with a single and pinch-runner Mason McCoy went to second on a groundout.
Horwitz walked with two outs and Whit Merrifield and Clement had RBI singles.
Guerrero gave the Blue Jays a 1-0 lead in the third with his 21st homer and Colorado answered in the bottom of the inning.
Ezequiel Tovar singled to left and Ryan McMahon doubled to center to tie it. McMahon came home on a single by Nolan Jones to give the Rockies a 2-1 lead.
Horwitz led off the top of the fourth with his first major league home run to tie it but Colorado responded in its half of the frame on back-to-back doubles by Elehuris Montero and Goodman.
Toronto starter Kevin Gausman allowed three runs on six hits in four innings.
The game was delayed 59 minutes by rain, and Toronto rallied in the fifth after play resumed.
With two outs, Cavan Biggio walked, went to second on a wild pitch and scored on a single by Guerrero, who moved to second on a throwing error. Davis Schneider doubled to bring home Guerrero and he scored on Horwitz's single to make it 5-3.
The Rockies got even in the bottom of the inning when Rodgers and Montero walked with two outs and came home on Goodman's double to left.
—Field Level Media