Giants 5, Pirates 0: Matt Cain threw a one-hitter, allowing only a single by Pittsburgh pitcher James McDonald in the sixth inning, during a near-perfect performance as San Francisco won its home opener.
Cain struck out 11 and permitted just a single runner. in his third career one-hitter, his fifth shutout and his 14th complete game.
Aubrey Huff homered as the Giants returned from a rough road trip. Buster Posey hit an RBI double in his first regular-season game at AT&T since his season-ending play at the plate with the Marlins' Scott Cousins last May 25.
Mets 5, Phillies 2: R.A. Dickey threw seven sharp innings, Jason Bay hit a two-run homer and surprising New York beat Cliff Lee to run its record to 5-2
Dickey (2-0) allowed just one run despite nine hits. The knuckleballer struck out seven and lowered his ERA against Philadelphia to 2.40 in seven career starts. Dickey has compiled 14 straight quality starts — six or more innings with three earned runs or less — dating to last July 25.
Cubs 9, Cardinals 5: Ian Stewart hit a three-run homer in the first inning, Bryan LaHair later connected for a grand slam and the Chicago Cubs hammered Adam Wainwright, spoiling St. Louis' home opener. Starlin Castro had three hits for the Cubs, who have scored 17 runs the last two games after totaling 19 runs in the first six.
Red Sox 12, Rays 2: Josh Beckett pitched eight solid innings as Boston rebounded from a rough road trip by beating Tampa Bay in its home opener.
The Red Sox began their 101st season at Fenway Park with Beckett limiting the Rays to five hits and one walk. He struck out just one, getting Carlos Pena in the eighth and extending his streak to 281 games with at least one strikeout since the start of his career.
Yankees 5 Angels 0: Alex Rodriguez hit his 630th home run and tied Ken Griffey Jr. for fifth place on the career list and Hiroki Kuroda pitched excellently in his Yankee debut as New York won in its 110th home opener.
Indians 8, Royals 3: Michael Brantley had two hits during a seven-run first inning as Cleveland roughed up Luke Hochevar before knocking him from the game and spoiling the Royals' home opener.
White Sox 5, Tigers 2: Jake Peavy pitched effectively into the seventh inning and Dayan Viciedo homered and made a key catch.
Peavy (1-0) took a one-hitter and a 3-0 lead into the seventh before Delmon Young's two-out, two-run homer finished him. With runners at second and third, Viciedo made a diving catch of Andy Dirks' sinking liner to left.
Rangers 4, Twins 1: Matt Harrison breezed through eight innings and Ian Kinsler homered to lead Texas in Minneapolis.