Jim Deshaies limited Atlanta to four hits in 8 2/3 innings and Glenn Davis hit a bases-empty homer to lead the Astros to a 4-2 win over the Braves last night in Houston.

Deshaies (6-3) struck out nine and walked one before needing last-out relief help from Dave Smith, who earned his 19th save.

The only runs off Deshaies came on a homer in the ninth by Ken Griffey, his fifth of the season.

Earlier, the Astros announced that pitcher Nolan Ryan was again placed on the 15-day disabled list because of a sore right elbow.

Cubs 4, Mets 3: Ron Cey drove in three runs with a double in the first inning and Dennis Eckersley and two relievers pitched a seven-hitter as Chicago won a rain-delayed game in New York.

Eckersley (5-6) struck out four and walked one in five innings before rain halted the game in the top of the sixth for nearly two hours. Loser Sid Fernandez (12-4) struck out 11.

Expos 3, Pirates 2: Wallace Johnson, recalled earlier in the day from Indianapolis, led off the seventh with his first major league home run to start a two-run inning that gave Montreal the victory over visiting Pittsburgh.

Cardinals 6, Phillies 3: Curt Ford and Terry Pendleton each singled home a run in the fifth inning and Todd Worrell earned his 21st save as St. Louis won in Philadelphia.

After the game, the Phillies announced the loss of pitcher Shane Rawley (11-7) for at least six weeks because of a shore shoulder.

Padres 9, Reds 3: Graig Nettles homered twice, and Ed Whitson and Gene Walter pitched a six-hitter in San Diego.

Dodgers 4, Giants 2: In Los Angeles, Bob Welch (5-9) benefited from a three-run first inning and won only his second game in his last 17 starts. He had a one-hitter for six innings and left after the seventh, having given up four hits and striking out nine. Tom Neidenfuer finished for his sixth save.

Before the game, the Dodgers reactivated Pedro Guerrero, who has yet to play this season because of knee surgery.