Bob Horner and Dale Murphy hit two-run homers and Ozzie Virgil and Rafael Ramirez hit solo shots yesterday in Chicago to lead the Atlanta Braves to an 8-4 victory over the Cubs.

Horner's eighth home run of the season followed a double by Murphy in the sixth inning and broke a 3-3 tie against Chicago starter Dennis Eckersley (3-3). One out later, Ramirez hit his third homer of the year. Murphy hit his ninth homer in the seventh inning after a single by Ken Oberkfell.

"It's been a while since I hit one," said Murphy. "The wind helped but I'll take it."

The Braves, who won for the 12th time in 17 games, scored two runs in the first inning on a single by Oberkfell, a double by Horner and a bloop two-run double by Gerald Perry. Virgil made it 3-0 in the second with his seventh homer.

Gary Matthews hit his fourth homer in the Cubs' third, Eckersley singled home a run in the fourth and Chicago tied it at 3-3 in the fifth when Ryne Sandberg tripled and scored on Keith Moreland's ground out.

The Cubs had 16 hits but stranded 14 runners and had two thrown out trying to advance an extra base.

*Phillies 1, Padres 0: Catcher John Russell's seventh-inning home run broke a scoreless tie and Charles Hudson scattered five hits over seven innings in Philadelphia as the Phillies defeated San Diego for their fifth straight victory.

Steve Bedrosian pitched two hitless innings to record his sixth save. It was the third shutout in four games by the Phillies and their second straight against the Padres.

San Diego's Dave Dravecky (5-4) had a three-hitter with one out in the seventh inning before Russell lined his third homer of the season over the left field fence.

*Cardinals 11, Reds 2: Mike Heath and Andy Van Slyke each had a homer and four RBI in Cincinnati to help weak-hitting St. Louis end a five-game losing streak.

Bob Forsch (4-3) pitched a four-hitter and the Cardinals backed him with a 15-hit attack. Forsch faced the minimum 18 batters over the first six innings.

Heath highlighted a three-run first inning with a two-run single off struggling Tom Browning (2-5) and hit a two-run homer in the third.

The Cardinals built the lead to 10-0 in the fourth on Van Slyke's three-run homer off Scott Terry, his second home run of the season.

*Giants 7, Mets 3: Jeff Leonard and Rob Thompson had three hits apiece in a 15-hit offense as San Francisco won in New York to end its four-game losing streak and the Mets' six-game winning streak.

Scott Garrelts (5-5) gave up eight hits, struck out four and walked three in his second complete game of the season.

Bob Ojeda (6-2) took the loss, giving up seven runs on nine hits in 3 1/3 innings.

*Pirates 4, Dodgers 0: Bob Kipper combined with two relievers on a nine-hit shutout and Tony Pena's two-out single in the sixth inning broke a scoreless tie as Pittsburgh beat visiting Los Angeles.

Kipper (1-4) had a 5.27 earned run average coming into the game.

The Dodgers loaded the bases with one out in the top of the eighth but failed to score. The Pirates scored three insurance runs against reliever Ed Vande Berg in the bottom of the inning.

*Astros 4, Expos 3: Glenn Davis hit a solo home run that broke an eighth-inning tie and sent Houston past visiting Montreal.

Davis' eighth homer of the season came with two outs off reliever Tim Burke (2-1). Frank DiPino (1-1) pitched one scoreless inning for the victory and Dave Smith picked up his 12th save.

Houston starter Nolan Ryan was removed from the game after the first inning with what was tentatively diagnosed as a ligament problem.