The Orioles went without a hit for five innings and faced a two-run deficit before sending 10 men to the plate in the sixth. Baltimore has won nine of its last 11.
With starter Aaron Cook (3-6) on the mound, Nick Markakis drew a one-out walk in the sixth, went to second on a single by J.J. Hardy and scored the first run of the inning on a base hit by Nate McLouth.
Adam Jones then grounded back to Cook, but the pitcher's throwing error on an attempted double play allowed Hardy to score and left runners on first and third.
Matt Wieters followed with a ground-rule double that brought home McLouth. A fielder's choice grounder to second base by Chris Davis resulted in Jones being thrown out at home, but Reynolds then came through with a double to deep left that delivered Wieters and Davis.
The win went to Miguel Gonzalez (5-2), who allowed two runs on six hits in six innings.
Jim Johnson came on in the ninth for his 35th save.
Boston lost for the sixth time in eight games and has dropped 10 out of 15.
Exploding whale video goes viral on Internet
Jordana Brewster on Paul Walker: 'He was an enormous presence in my life'