Shane Victorino had three hits and Dustin Pedroia added two for the Red Sox.
Roy Oswalt (0-2), making his second start since being recalled from Double-A, allowed five runs and nine hits in six innings, striking out five and walking one.
Colorado’s Michael Cuddyer extended his hitting streak to 23 games with two solo homers, matching Dante Bichette’s club-record set in 1995.
“The Red Sox are good at putting the ball in play and creating some things. It was a lot of contact, a lot of action, and I just think they found some holes early,” Rockies manager Walt Weiss said. “I thought Roy settled in and made good use of his fastball as he went along. In the end, battled for us to give us six.”
The Rockies finished a road trip in which they lost seven of nine.
New Boston closer Koji Uehara worked a perfect ninth for his second save.
The Red Sox wasted little time jumping to a 3-1 lead against Oswalt in the first. Jacoby Ellsbury had a leadoff double and scored on Victorino’s single to right. David Ortiz followed with his 499th career double, a drive high off the Green Monster that scored Victorino. Nava then had an RBI single when the ball bounced off the second-base bag and into short left just as shortstop Josh Rutledge was attempting to make a play on it.
Oswalt, 3-2 with a 2.16 ERA Double-A Tulsa, struck out 11 without allowing a walk in his first start against Washington last Thursday.
“I felt like both starts actually were better than what they turned out to be,” he said. “That’s baseball, you know? Maybe the next two starts I get some lucky breaks. It seems like the first two I’ve had a couple of breaks here and there that didn’t really fall my way, but I’m going to keep throwing strikes and make them hit the ball and see what happens.”