David Wallace, Associated Press
Arizona's Stephen Drew watches his home run in the fifth inning against St. Louis as he hit for the cycle Monday night in Phoenix.

PHOENIX — In black magic marker, a scuffed baseball told the details of the biggest game of Stephen Drew's career.

Five hits and a cycle — the first in Chase Field history.

The Arizona Diamondbacks needed every hit in an 8-6 comeback victory over St. Louis on Monday.

"I'm kind of in shock right now," said Drew, who carried his keepsake baseball into the postgame interview room. "I'm just trying to put good 'ABs' together. It was meant to be."

Drew wasn't the only Diamondbacks player who had a big day. Newly acquired David Eckstein singled home the winning run, and Adam Dunn, Chris Young and Mark Reynolds also homered as Arizona overcame a poor start by Randy Johnson.

The Diamondbacks needed a lift after losing two out of three over the weekend to NL West rival Los Angeles. Arizona entered Monday with a shaky 2 1/2-game lead over the Dodgers.

"To hit for the cycle, it's fun, but it wouldn't have really meant anything to me if we didn't win," Drew said.

Batting leadoff, the 25-year-old shortstop singled in the first, tripled in the third and homered in the fifth against St. Louis Cardinals starter Joel Pineiro. He hit a ground-rule double in the seventh against reliever Kyle McClellan (2-7) as the Chase Field crowd rose for a standing ovation.

Drew added another double in the eighth for his fifth hit, matching a career high and a franchise record.

"It seems like he gets a good at-bat every time up," Arizona manager Bob Melvin said. "Five hits, cycle, the whole bit — it's certainly going to be a day that he's going to remember. You don't get too many like this. It'll be one of the most exciting offensive days of his life."

Drew is 10-for-17 with a homer, three doubles and a triple in the first four games of a six-game homestand.

ASTROS 3, CUBS 0: At Chicago, Roy Oswalt allowed four hits and came within two outs of a shutout and the Houston ran its winning streak to six games. The Cubs have lost three straight, all at home — their first three-game skid at Wrigley Field since August of last year. They remained 4 1/2 game ahead of the Brewers in the NL Central after Milwaukee lost 4-2 to the Mets.

METS 4, BREWERS 2: At Milwaukee, Carlos Delgado's two-run home run off Eric Gagne in the eighth inning propelled New York to a victory over the Brewers. Milwaukee starter Ben Sheets pitched five scoreless innings but was taken out of the game as a precaution due to "very slight" tightness in his left groin.

NATIONALS 7, PHILLIES 4: At Washington, Ryan Zimmerman hit a two-run home run and the Nationals won their seventh straight game. Starter Tim Redding didn't allow a hit in the first five innings for the Nationals, who are on their best streak since a 10-game stretch in June 2005. The Phillies dropped two games behind the Mets in the NL East.

ROCKIES 4, GIANTS 0: At Denver, Jorge De La Rosa pitched seven shutout innings and had an RBI single, Willy Taveras stole three bases and scored twice and Colorado shut out San Francisco. De La Rosa (8-7) was sharp for the fifth straight start, allowing four hits, striking out six and walking one. He didn't allow a runner past first base and twice erased leadoff singles by inducing double plays.

MARLINS 4, BRAVES 3: At Miami, Jorge Cantu homered and John Baker hit a bases-loaded sacrifice fly to drive in the winning run in the ninth, helping Florida beat Atlanta. Baker's fly ball to shallow left drove in Dan Uggla, who beat left fielder Brandon Jones' throw to the plate.

DODGERS 5, PADRES 2: At Los Angeles, Greg Maddux tied Roger Clemens for eighth place on the career list with his 354th victory, leading the Dodgers past San Diego. Maddux (7-11) allowed two runs and six hits, struck out four and walked none. It was the four-time Cy Young winner's third start with the Dodgers since the Padres traded him back to Los Angeles on Aug. 19, after Brad Penny went on the disabled list with a shoulder injury.

American League

INDIANS 5, WHITE SOX 0: At Cleveland, Cliff Lee became Cleveland's first 20-game winner in 34 years, pitching a five-hitter for his second career shutout to lead the Indians to a 5-0 win over the Chicago White Sox on Monday night. Lee (20-2) is the first Indians pitcher to reach 20 wins since Hall of Famer Gaylord Perry went 21-13 in 1974. The left-hander's milestone win — his ninth straight victory — came exactly one year to the day that he was recalled from the minor leagues.

MARINERS 12, RANGERS 6: At Arlington, Texas, Adrian Beltre hit for the cycle and had five hits to help Seattle win their fourth straight game, beating Texas. Beltre, who had the third five-hit game of his career, became the fourth Mariners player to hit for the cycle with an RBI triple off Josh Rupe in the eighth. Beltre homered in the second, had an RBI single in the fourth and singled in the sixth off Rangers starter Matt Harrison. He doubled off Rangers reliever Luis Mendoza (3-7) in Seattle's four-run seventh.

YANKEES 13, TIGERS 9: At Detroit, Alex Rodriguez sparked a scoring barrage with a two-run single in the first inning and added an RBI in each of the next two frames to help New York take a nine-run lead before winning by four. Rodriguez's four RBIs helped the Yankees take an 11-2 lead, but they were ahead by just two runs following five innings after giving up homers to Gary Sheffield, Miguel Cabrera and Brandon Inge.

RED SOX 7, ORIOLES 4: At Boston, Dustin Pedroia's two-run single capped a four-run sixth inning, Paul Byrd pitched seven efficient innings and the Red Sox beat the struggling Orioles. The Red Sox pulled to five games behind the idle Rays. Boston increased its lead to three games in the wild card race.