Porcello (1-0) allowed three runs and six hits and a walk while moving within two strikeouts of 1,000 for his career. The reigning American League Cy Young Award winner was making his first career Opening Day start.
The right-hander also logged his 42nd consecutive start of at least five innings, breaking a tie with Roger Clemens for the third-longest streak in Red Sox history.
Josh Harrison, Jordy Mercer and Starling Marte each drove in a run for the Pirates, who are 70-61 all-time on Opening Day.
Gerrit Cole (0-1) cruised through four innings before unraveling, allowing five runs on seven hits with a walk and two strikeouts over five frames for Pittsburgh.
Boston's bats gave a jolt to a lifeless game in the fifth.
Bradley, who made an impressive catch up against the wall in center to end the Pirates' fourth, just missed a home run on a fly to right and legged out a two-out triple.
Sandoval produced the Red Sox's first run of the season after that, beating out an infield single to shortstop to plate Bradley.
After Sandy Leon's bunt single, Pedroia singled up the middle to make it 2-0. Benintendi sent a 2-2 pitch into the Pittsburgh bullpen in right for his homer the next at-bat.
Francisco Cervelli sparked the Pirates' offense in the seventh, doubling off the Green Monster in left to put a pair in scoring position with nobody out.
Harrison hit a rocket to left for an RBI single, scoring David Freese from third and ending Porcello's day. Matt Barnes entered in relief and immediately gave up a soft single up the middle to Mercer, plating Cervelli.
Barnes walked Adam Frazier to load the bases and Marte's hard lineup to left brought Harrison in. Barnes struck out Andrew McCutchen and a 2-3 putout ended the threat.
NOTES: Pittsburgh faced an American League opponent on Opening Day for the first time, and the Pirates' last trip to Fenway Park before Monday was in June 2005. ... Boston 2B Dustin Pedroia played his 1,399th career game, tying him with Dom DiMaggio for 11th most in team history. ... Pirates RF Andrew McCutchen, asked about what could be his final Opening Day with the team amid trade rumors, told the Pittsburgh Tribune-Review "I'm just thankful to see another Opening Day." ... LF Andrew Benintendi is the 10th different player to start in left field for the Red Sox on Opening Day in the last 10 years. Benintendi (22 years, 271 days) is also the youngest Opening Day starter in left since Carl Yastrzemski (22 years, 231 days) in 1962. ... Tom Brady threw out a ceremonial first pitch and was accompanied by New England Patriots owner Robert Kraft and players Rob Gronkowski, James White and Dion Lewis, each holding one of the team's five Super Bowl trophies. ... Pirates RHP Jameson Taillon opposes Red Sox LHP Chris Sale on Wednesday.