John Grabow pitched a perfect eighth and Matt Capps worked out of a two-on, none out jam in the ninth to earn his 20th save.
Barry Zito (5-10) nearly matched Morton but was the hard-luck loser, allowing two runs on six hits without a walk. He struck out four in 6 1-3 innings.
METS 5, BRAVES 1
At Atlanta, Johan Santana threw seven scoreless innings to take some pressure off New York’s struggling offense as the Mets beat Atlanta.
The Mets scored two runs in the sixth to snap a streak of 19 consecutive scoreless innings. Kenshin Kawakami’s bases-loaded walk to Jeremy Reed forced in the first run.
They led only 2-1 before scoring three runs in the ninth off Manny Acosta. Angel Pagan had three hits, including a run-scoring triple in the ninth.
DIAMONDBACKS 4, CARDINALS 2
At St Louis, Dan Haren allowed one run over eight innings and Miguel Montero homered and had four hits as Arizona downed St Louis.
Haren (10-5) allowed his former team just four hits while striking out eight, lowering his major league-leading ERA to 1.96.
After giving up an RBI single to Albert Pujols with one out in the third, Haren retired the next 15 batters in a row.
In other AL play, it was:
• Brewers 5, Reds 1
• Dodgers 5, Astros 2
• Cubs 6, Nationals 5
• Padres 3, Rockies 1



