Brandon Belt hit a tiebreaking, two-run double in the fifth inning to back a shaky outing by Matt Cain, and the San Francisco Giants rallied past the Colorado Rockies 7-3 Sunday.