In the fifth, Moore got stung by a fielding error when center fielder Steven Souza Jr. dropped a fly ball that teed it up for Dustin Pedroia's two-run single. Both runs were unearned.
Porcello allowed one run on six hits to pick up the win and move to 11-2 on the season and 8-0 at Fenway Park. Moore gave up two earned runs in six innings to take the loss and fall to 5-6.
"We just haven't quite figured him out," Rays manager Kevin Cash said of Porcello. "Brad Miller had a big hit there in the first, but we just kind of pieced together a hit here and there, but nothing substantial where we could get runs across the board."
MOMENTS THAT MATTERED Walk to 0-2 blues: Moore had a 1-0 lead after three innings before he walked Pedroia to start the Red Sox fourth. He recovered nicely by getting ahead of Bogaerts 0-2. But rather than take advantage of the pitcher's count, Moore delivered a 95-mph fastball that Bogaerts could handle, sending the pitch over the Green Monster in left to put the Red Sox up, 2-1. More >
Taking advantage of miscues: In the fifth, Mookie Betts hit a deep fly ball into center field that looked like it was going to land in Souza's glove. Instead, Souza dropped it for an error as Betts stopped at second. Five pitches later with nobody out, Pedroia pulled a two-run single into left to score Sandy Leon and Betts, giving the Red Sox a 4-1 lead.
"He missed in the middle of the plate, and I just put a good swing on it," Bogaerts said. "If he puts the ball where he wants to, that might not have happened, but it leaked over the middle."
Miller homers again: Miller gave the Rays a 1-0 lead in the first when he homered. The Rays' shortstop now has nine home runs in his last 26 games and 14 on the season. Every time he homers, he extends his career high (previously 11 in 2015). His 14 homers represent the most by a Rays shortstop before the All-Star break.
Porcello anchors down: After giving up a home run to Miller in the first, Porcello cruised through the next six frames. He didn't walk a batter and struck out five. Staying ahead of the count for most at-bats, Porcello finished the seventh with one of his most impressive lines of the season. The sinkerballer gave up just six hits and one earned run -- throwing 94 pitches, 70 of which were strikes -- to remain perfect at home.
"I like to throw a zero up every inning, no matter if we score or not," Porcello said. "Obviously, there's the momentum and a little more emphasis after we've scored to give them a chance to creep back into it. That's definitely there. But I can't be on the mound thinking about that. I just have to go about my job like I always do and try and throw up zeros." More >
"This is more than a skid. This is something that we're going to have to find a way in the second half to be better. There's no one way to do it. We just have to win ballgames no matter how we do it moving forward." -- Moore, on the Rays losing 21 of their last 24
SOUND SMART WITH YOUR FRIENDS
Moore has gone at least six innings in a career-long seven straight starts.
In the eighth inning with one out and runners on first and second, Bryce Brentz hit a grounder to second baseman Logan Forsythe, who bobbled the ball. Forysthe tossed to first as a speeding Brentz was called out. Red Sox manager John Farrell challenged, and after a 58-second official replay review, the call stood as an out at first.
WHAT'S NEXT Rays: Jake Odorizzi (3-4, 4.33 ERA) will make his 19th start as the Rays end a disappointing first half at 1:35 p.m. ET on Sunday against the Red Sox. The right-hander has struggled with the big inning, having allowed at least four runs in a frame on five occasions this season. He is 2-2 with a 4.07 ERA in nine career starts against the Red Sox.
Red Sox: Ace David Price (8-6, 4.64 ERA) allowed three runs while striking out 10 batters during his last time out against the Rangers. The left-hander leads the American League with six double-digit strikeout efforts, but he has struggled against Tampa Bay. Price is 1-3 with a 6.52 ERA against his former club.