ST LOUIS, Missouri — The New York Mets spent all day wasting scoring chances but they still escaped Busch Stadium with an absurd win, breaking a 1-1 tie with two runs in the top of the 18th inning to beat the St. Louis Cardinals 3-1 in the National League Sunday. Shortstop Ruben Tejada hit a sacrifice fly with the bases loaded and second baseman Wilmer Flores came up with the tiebreaking run. Left fielder Eric Campbell squeezed home right fielder Curtis Granderson with an insurance run. New York (48-44) went an unthinkable 1-for-26 with men in scoring position and stranded 25 runners, 17 in scoring position, in the 5-hour, 55-minute marathon. Dodgers 5, Nationals 0: Zack Greinke allowed three hits and no runs in eight innings to extend his scoreless streak to 43 2/3 innings as the Los Angeles Dodgers beat Washington to take the rubber game in a showdown of first-place clubs. Greinke, who had a season-high 11 strikeouts with one walk, has not allowed a run in his last six starts. He lowered his ERA to a league-best ERA of 1.30 and did not allow a runner to reach second as he threw 119 pitches. Phillies 8, Marlins 7: Philadelphia's Jeff Francoeur delivered a two-run, walk-off home run in the bottom of the ninth inning as the Phillies beat the Marlins 8-7. The Marlins came back from 5-2 in the third inning and 6-5 in the eighth, but the Phillies, who lost a franchise-record 62 games in the first half, completed just their second sweep of the season. Brewers 6, Pirates 1: Khris Davis' two-run double made a winner out of right-hander Taylor Jungmann, who struck out five over seven innings in Milwaukee 6-1 win over Pittsburgh. Other results: Cubs 4, Braves 1; Giants 2, Diamondbacks 1. American League Yankees 2, Mariners 1: Mark Teixeira hit a tiebreaking home run with two outs in the bottom of the eighth inning as the New York Yankees edged Seattle 2-1. Teixeira helped give the Yankees their ninth win in 13 games when he slugged a 1-2 changeup from Fernando Rodney into the right field seats. It was his 23rd home run and increased his league-leading RBI total to 63. Blue Jays 4, Rays 0: Chris Colabello and Jose Bautista homered, Marco Estrada pitched eight strong innings and Toronto defeated Tampa Bay 4-0. Colabello hit a two-run homer in the fifth to break up a scoreless game as Estrada held the Rays to three hits in facing one batter over the minimum. The right-hander struck out five and did not walk a batter. Orioles 9, Tigers 3: Jonathan Schoop's three-run homer highlighted a six-run fourth and Baltimore rolled over Detroit 9-3. The home run was Schoop's sixth this season and third since coming off the 15-day disabled list on July 5. Adam Jones pounded out three hits, including a solo home run, as every Baltimore starter had at least one hit. Royals 4, White Sox 1: Danny Duffy gave Kansas City exactly what it needed, outpitching Chicago's ace left-hander Chris Sale to help the Royals earn a 4-1 win. Duffy pitched into the ninth to tie his season high in pitches (113) and struck out four to earn the win in his first outing since July 10. The only run Duffy allowed on six White Sox hits was a lead-off homer in the ninth by Tyler Saladino. Other results: Astros 10, Rangers 0; Athletics 14, Twins 1. Inter-League Indians 5, Reds 3 (11 innings): Cleveland scored four runs on bases-loaded walks, including the go-ahead run in the 11th inning, in a win 5-3 over Cincinnati. Yan Gomes drew a walk against Pedro Villarreal with one out in the 11th to force in a run to make it 4-3. Second baseman Jason Kipnis added a sacrifice fly to put Cleveland ahead by two. — Reuters