HOUSTON, SEPT. 9 -- Nolan Ryan, 40, struck out 16 in eight innings to enable the Houston Astros to beat the San Francisco Giants, 4-2, tonight and move 4 1/2 games behind the first-place Giants in the National League West.

He also had the game-winning RBI.

"He was still throwing 94 mph in the eighth inning," Astros Manager Hal Lanier said.

Ryan (7-14) walked two and allowed six hits. He threw 131 pitches -- 21 more than the limit Lanier imposes on him.

"His curveball is what made him so effective," first baseman Will Clark of the Giants said. "When he's throwing that hard and has control of his curve, you can't sit on the fastball. It makes for a rough day at the old ballpark."

"What made tonight so good," Ryan said, "was I threw my curveball harder and for strikes. I call it my old American League curve. Batters don't do me any favors. They usually lay off my curveball until I throw it for strikes."

He struck out the last five batters and 10 of the last 12 batters he faced. Dave Smith pitched the ninth for his 23rd save.

Ryan, who took the major-league lead in strikeouts, has struck out 226 in 176 innings. He last struck out 16 in 1979, when he was with the Angels. In 1977, he struck out 19 for the Angels. His previous NL high was 14 in 1968 with the New York Mets. The last NL pitcher to get 16 was the Mets' Dwight Gooden, Aug. 20, 1985.

The Astros took a 2-0 lead off Atlee Hammaker (9-1) in the second. Ryan's two-out single drove in the first run. The next inning, Kevin Bass hit his 17th homer -- fourth in seven games.