Santana (4-7) bounced back from several rough outings by retiring Arizona's first 20 hitters before Justin Upton's two-out single to centre in the seventh.
The Dominican right-hander then retired the next five Diamondbacks before pinch-hitter Miguel Montero drew a four-pitch walk in the ninth, but Santana finished up his first complete game of the season with two fly balls.
Joe Saunders (4-5) allowed eight hits in six innings while facing the Angels for the first time since they traded him to Arizona in 2010. Saunders mostly kept pace with Santana, his longtime teammate, after a rough first inning, but the Diamondbacks were shut out for the third time in 11 games.
YANKEES 5, NATIONALS 3, 14 INNINGS
WASHINGTON (AP) — Mark Teixeira hit a two-run double in the 14th inning and the Yankees picked up their eighth consecutive victory.
Teixeira's drive to the right-field corner off Brad Lidge (0-1) brought home Jayson Nix and Derek Jeter.
Freddy Garcia (1-2) pitched two innings to get the win. Rafael Soriano finished for his 12th save, but only after allowing consecutive one-out singles to Jesus Flores and Steve Lombardozzi. The game ended when Soriano got Bryce Harper to ground out, ending an 0-for-7 day for the Nationals' teen sensation that included five strikeouts.
Ian Desmond hit a solo homer for Washington.
MARLINS 4, RAYS 3, 15 INNINGS
ST. PETERSBURG, Fla. (AP) — Scott Cousins hit a tiebreaking RBI triple in the 15th inning to lift Miami to the win.
Former Ray Justin Ruggiano doubled with one out and raced home when Cousins, playing his second game since being recalled from the minors, sent a pitch from Brandon Gomes (1-2) down the right-field line.
Ryan Webb (3-1) pitched three scoreless innings for the victory. Heath Bell struck out the side for his 14th save in 18 opportunities for Miami, which won for just the second time in its last 11 games.
The Marlins beat their intrastate rivals for the first time in five meetings this year, ending an eight-game losing streak in the annual Citrus Series dating to May 2011. It was Tampa Bay's longest winning streak ever against a NL opponent.
ORIOLES 5, BRAVES 0
ATLANTA (AP) — Jason Hammel pitched a one-hitter for his first career shutout, allowing only Jason Heyward's two-out single in the seventh inning, and the Orioles beat the Braves.
Hammel (7-2) struck out eight and walked two, throwing 65 of 102 pitches for strikes.
Brian Roberts drove in three runs for the Orioles, who have won six of seven.
Atlanta pitcher Brandon Beachy (5-5) left with right elbow soreness in the fourth inning. He allowed no hits and one run, struck out five and walked one.
The Braves have lost five of six.
RANGERS 8, ASTROS 3
ARLINGTON, Texas (AP) — Nelson Cruz hit a towering three-run homer and the Rangers rallied to make Justin Grimm a winner in his major league debut.
Rookie Lucas Harrell (6-5) was working on a shutout before Adrian Beltre hit a two-run single and Cruz drove the next pitch over the wall in left to give the Rangers a 5-3 lead.
Grimm (1-0), whose contract was purchased earlier in the day from Double-A Frisco, allowed three runs and six hits in six innings. He was pitching in place of Alexi Ogando, who will be out four to six weeks after he strained his right groin running out a bunt single in San Francisco last Sunday.
Harrell allowed five runs and seven hits over 5 1-3 innings.
CARDINALS 10, ROYALS 7
ST. LOUIS (AP) — Matt Holliday homered and drove in five runs to power St. Louis to the victory.
Yadier Molina also went deep and finished with four RBIs as the Cardinals won for the third time in four games. Mitchell Boggs (1-1) pitched 1 1-3 scoreless innings for the win and Jason Motte recorded his 14th save in 17 chances.
Holliday also doubled twice and singled. Molina hit a tiebreaking two-run single off Greg Holland in the seventh inning.
Kansas City had won four straight. Tim Collins (4-1) was charged with the loss.
PIRATES 9, INDIANS 2
CLEVELAND (AP) — A.J. Burnett became the first Pittsburgh pitcher since 1990 to win six straight starts and Pedro Alvarez homered twice.
Burnett (7-2) gave up two runs over 6 2-3 innings. He extended the best stretch by a Pirates pitcher since Doug Drabek won six in a row during his NL Cy Young Award-winning season.
Casey McGehee homered and drove in four runs and Alvarez had three RBIs as the Pirates snapped a four-game losing streak. McGehee broke a 2-all tie with a two-run homer off Ubaldo Jimenez (6-5) in the sixth.
Cleveland's Michael Brantley went 0 for 3 with a walk, halting the majors' longest hitting streak this season at 22 games.
RED SOX 4, CUBS 3
CHICAGO (AP) — Jarrod Saltalamacchia homered to back a strong start by Jon Lester, leading the Red Sox to the win.
Saltalamacchia, Scott Podsednik and Mike Aviles had two hits apiece for Boston, which had dropped eight of 11. Podsednik and Will Middlebrooks each drove in a run.
Luis Valbuena belted a three-run homer in the seventh inning for his first hit with Chicago. Jeff Samardzija (5-5) was charged with three runs and four hits in 5 1-3 innings.
Lester (4-4) struck out eight in 6 2-3 innings and was charged with three runs and seven hits. Alfredo Aceves got three outs for his 16th save in 19 chances.
BLUE JAYS 6, PHILLIES 5, 10 INNINGS
TORONTO (AP) — Rajai Davis drove home the winning run with a two-out drive in the 10th inning that bounced over the wall and Toronto extended Cliff Lee's winless streak to 11 starts.
Yunel Escobar connected for a solo homer among his three hits and also scored the winning run. Francisco Cordero (2-4) pitched one inning for the victory.
After Toronto scored three times in the eighth to make it 5-all, Escobar drew a leadoff walk in the 10th from Joe Savery (0-2). Escobar moved up on a balk, advanced to third on Mike McCoy's groundout and scored when Davis hit a drive that hopped over the left-centre field wall.
John Mayberry Jr. hit a three-run homer for the Phillies, who have dropped 11 of 14. Lee allowed five runs and 12 hits in seven-plus innings.
BREWERS 6, TWINS 2
MINNEAPOLIS (AP) — Ryan Braun hit two home runs and Michael Fiers pitched seven strong innings for Milwaukee.
Braun added a double and a walk to back Fiers (2-2), who gave up one run and four hits. Aramis Ramirez and Cody Ransom also homered for the Brewers, who have taken the first two games in this interleague series.
Liam Hendriks (0-3) gave up five runs — two earned — and eight hits in five innings in his first start since being recalled from Triple-A Rochester. Trevor Plouffe went 0 for 1 with three walks, ending his streak of four straight games with a homer as the Twins lost their fourth straight.
TIGERS 4, ROCKIES 1
DETROIT (AP) — Doug Fister pitched six shutout innings in his return from the disabled list and Miguel Cabrera homered to lead Detroit to the win.
Fister (1-3) had been out since aggravating a ribcage strain on May 28. He missed a month after sustaining the original injury in his first start of the season.
Fister allowed three hits and struck out six, sending the Rockies to their ninth loss in 10 games.
Cabrera hit his 14th homer in the first.
Colorado's Christian Friedrich (4-3) gave up three runs, two earned, and three hits in five innings. He walked five and struck out four.
ATHLETICS 6, PADRES 4
OAKLAND, Calif. (AP) — Pinch-hitter Jonny Gomes belted a two-run homer in the seventh inning to lift Oakland to its fifth consecutive victory.
Seth Smith also homered for the A's. Jemile Weeks and Collin Cowgill each drove in a run.
Carlos Quentin hit a home run for the Padres, who have lost two straight since sweeping the Mariners. Will Venable had two RBIs.
Sean Doolittle (1-0) pitched the seventh to pick up his first major league victory. Ryan Cook got three outs for his third save.
Joe Thatcher (0-2) took the loss.
MARINERS 7, GIANTS 4
SEATTLE (AP) — Jesus Montero and Casper Wells hit long first-inning homers off Tim Lincecum and Seattle rallied to beat San Francisco.
Franklin Gutierrez's infield single in the sixth put Seattle ahead to stay as the Mariners snapped a six-game losing streak.
Lincecum (2-8) was the focal point of the evening thanks to his career-worst five-game losing streak and his first start in Seattle, where he was a prep star and national collegiate player of the year at Washington. Instead it became another night of frustration for the two-time Cy Young Award winner, who was unable to hold a 4-2 lead and was done just one batter into the sixth inning.
Hisashi Iwakuma (1-0) picked up his first major league victory by pitching two scoreless innings in relief of Kevin Millwood. Charlie Furbush worked the eighth and Tom Wilhelmsen finished for his fourth save in five chances.
WHITE SOX 5, DODGERS 4
LOS ANGELES (AP) — Alexei Ramirez opened the scoring with a two-run single and scored the go-ahead run as Chicago blew a lead to Los Angeles for the second straight game before coming back.
Philip Humber (3-4) threw 99 pitches over five laborious innings, but got the victory after allowing four runs and nine hits. The right-hander is 2-4 with a 7.47 ERA in 10 starts since throwing a perfect game on April 21 at Seattle.
Addison Reed, the sixth Chicago pitcher, posted his eighth save in as many chances with a perfect ninth to help end a three-game skid by the AL Central leaders.
Chad Billingsley (4-5) was charged with five runs and eight hits in six innings before he was lifted for a pinch-hitter.
REDS 4, METS 1
NEW YORK (AP) — Homer Bailey pitched out of trouble for eight innings, Jay Bruce hit a three-run homer and Cincinnati earned its fifth straight victory.
Ryan Ludwick added an RBI single to help the NL Central leaders move a season-best 10 games over .500 at 37-27.
Bailey (5-4) allowed one run and six hits while improving to 4-1 in his last six starts. Aroldis Chapman tossed a hitless ninth for his eighth save.
New York starter Jonathon Niese (4-3) made one big mistake to Bruce during seven otherwise effective innings. He gave up four runs and six hits.Suggest a correction