BALTIMORE >> Xander Bogaerts did the damage early, extending his hitting streak to 23 games and driving in two runs.
From there, Boston used the long ball to pull away from the Baltimore Orioles in a matchup between the top two teams in the AL East.
Jackie Bradley put the first-place Red Sox ahead for good with a sixth-inning homer, and David Ortiz and Marco Hernandez connected in the eighth to seal a 7-2 victory Monday.
Knuckleballer Steven Wright (5-4) pitched a four-hitter, striking out seven and walking five in his third straight complete game.
Mookie Betts scored twice, courtesy of Bogaerts, before Bradley connected off Tyler Wilson (2-4) leading off the sixth. Bradley's 29-game hitting streak, which ended last week, is the only one this season longer than Bogaerts' career-best run.
"I'm just trying to go up there and get hits, you know? If it happens, it happens," Bogaerts said. "Just trying to be me, and not trying to be someone who I'm not."
Ortiz led off the eighth with his 14th home run and Hernandez added a three-run shot to send many in the crowd of 43,926 up the exit ramps. Hernandez's first major league homer came in his 10th game.
Wright, meanwhile, threw a 122-pitch masterpiece by mixing a fluttering knuckler with a vastly contrasting fastball.
"It was a challenge," Baltimore's Mark Trumbo said. "He had great stuff today. It never ended up where it started. You can't really predict where to swing. You just hope that you get one that maybe doesn't move quite as much."
Ryan Flaherty doubled in a run and scored one for the Orioles, who have lost six of eight.
Wilson gave up three runs and eight hits over 6 2-3 innings in losing his third straight start.
Limited to an infield hit over the first four innings, Baltimore temporarily solved Wright's knuckler in the fifth. Nolan Reimold tripled, Flaherty doubled, Caleb Joseph snapped an 0-for-19 skid with a single and Adam Jones delivered a sacrifice fly to tie the game at 2.
"They're a very aggressive team. They're all really good hitters," Wright said. "In that inning they scored the two runs, I think I kind of got caught up in the same speed."
The deadlock lasted only until Bradley crushed Wilson's third pitch of the following inning.
Boston got a first-inning run when Betts scored from second base on Bogaerts' dribbler down the third-base line. Bogaerts was thrown out, but neither Wilson nor Joseph, the catcher, got back to cover the plate. Replays indicated the ball bounced off Bogaerts' foot in foul ground, but such plays are not reviewable.
Bogaerts knew the ball should have been called foul, but learned from experience to run it out.
"We had a play back at home, same play. I stood at home, the ball hit me, and they threw to first, out," he said. "I told the umpire the ball hit me, and he said, 'No, you're out.' This time I'm running, you know. And it worked out for RBI."
Bogaerts hit an RBI double in the third following singles by Betts and Dustin Pedroia.
Red Sox: Bogaerts' two doubles increased Boston's major-league leading total to 133, but Ortiz's career-high run of six straight games with a double came to an end.
Orioles: Flaherty's fifth-inning double was his second in 61 at-bats this season and produced his second RBI.
Red Sox: Placed on the concussion list May 20, utility man Brock Holt has ramped up his baseball-related activities. But there is no timetable for his return, manager John Farrell said. ... Ortiz returned after sitting out Sunday's game in Toronto with a sore left foot.
Orioles: RHP Yovani Gallardo (shoulder tendinitis) will begin his rehabilitation assignment on Thursday and with 40-60 pitches in a minor league game. ... SS J.J. Hardy (broken foot) will have a CT scan Friday. He hopes to be cleared to begin baseball-related activities. Joseph was taken to the hospital for observation after getting struck in the groin by a foul ball.
Red Sox: Eduardo Rodriguez (right knee) comes off the disabled list to make his season debut, starting on the mound Tuesday night against the organization that drafted him. Rodriquez went 0-3 in five rehab starts with Triple-A Pawtucket. After the game, Boston sent reliever Heath Hembree to the minors to make room for Rodriguez.
Orioles: Starting for the eighth time this season, Kevin Gausman (0-2, 3.24 ERA) makes another run at his first win.