BOSTON — Mookie Betts wasn't pleased with his recent swings at the plate.
A little tweaking and he joined elite company in Red Sox history.
Betts hit three home runs and drove in a career-best eight runs, joining Hall of Famer Ted Williams as the only Red Sox players in over 100 years with a pair of three-homer games in a season and powering Boston over the Arizona Diamondbacks 16-2 Sunday.
"These last couple of days I was off," Betts said. "I basically just swung my way out of it."
The Red Sox said Betts joined Williams, who had two three-homer games in 1957, as the only Red Sox players since 1913 to accomplish the feat.
"It makes you feel pretty good anytime your name's said with his. It means you've done something well," said Betts, who matched David Ortiz with the club lead with 26 homers.
Dustin Pedroia had five hits and Jackie Bradley Jr. hit a two-run homer for Boston.
Rick Porcello (16-3) became the first Red Sox pitcher in 70 years to open a season 12-0 at Fenway Park as Boston completed a three-game sweep of Arizona.
Zack Greinke (11-4) was chased in the second inning.
"The guys swung the bats tremendous today against one of the best pitchers in the game," Porcello said. "I threw strikes to get us back in the dugout as quick as possible."
Betts had two chances to hit a record-tying fourth homer, but lined out to right and then grounded out in the eighth. The crowd chanted 'Let's Go Mookie!' before his final at-bat.
His teammates wanted to see him become the 17th player in major league history with four homers in a game.
"They told me try and swing for it," Betts said.
Betts' other three-homer game came against Baltimore on May 31.
What was billed as a marquee pitching matchup turned into a rout early when Greinke was tagged for three homers and nine runs in 1 2/3 innings.
"It just seemed like my stuff was really flat today," he said. "Most times, guys don't hit my off-speed very good, but they hit all my off-speed pitches today."
Porcello allowed one run on three hits over seven innings and became the first Boston pitcher since Dave "Boo" Ferriss to begin a year by winning his first 12 decisions in Fenway.
Betts' two-run homer in the first cleared the Green Monster and made it 2-0.
His second, a three-run shot into the first row of Monster seats, keyed a seven-run second. Bradley hit his off the Pesky Pole, and rookie Andrew Benintendi and Pedroia each drove in a run during the inning.
Betts' third homer was a three-run shot that caromed off a billboard above the Monster in a six-run fifth.
Michael Bourn had a solo homer and RBI single for the Diamondbacks. They had won four straight before being swept.
It was the second-most runs Greinke has allowed in his career. He gave up 11 in a start for Kansas City, against the Diamondbacks on June 10, 2005.
"They just hit everything he threw up there," Arizona manager Chip Hale said.
Diamondbacks: C Welington Castillo is due back Monday from bereavement leave.
Red Sox: Bradley was in the lineup after getting Saturday off to rest and nurse a sore big toe. . Manager John Farrell said after the game that RHP Steven Wright (jammed pitching shoulder) would go on the DL and Hanley Ramirez on the bereavement list.
Pedroia had his fifth career five-hit game, most in club history.
Recently acquired Red Sox C Bryan Holaday's preschool-age son walked over to Ortiz in the clubhouse, looked up and asked: "Can you teach me how to hit home runs every time?"
Big Papi smiled and replied: "You want to learn how to hit home runs every time? We'll work on that."
Diamondbacks: LHP Robbie Ray (5-11, 4.57 ERA) faces RHP Bartolo Colon (10-6, 3.35) Monday in the opener of a three-game series against the Mets.
Red Sox: LHP Drew Pomeranz (0-2, 5.26) is set to start when they open their four-city road trip. RHP Josh Tomlin (11-5, 4.18) goes for the Indians.