ST. LOUIS -- The same offense that went hitless until the sixth inning twice earlier on their homestand showed up again for the St. Louis Cardinals.
Four hits in 10 innings were just enough to beat the Seattle Mariners, who helped beat themselves.
"We'll take them any way we can get them right now," manager Mike Matheny said. "The guys are showing a lot of heart and that means something.
"There's nothing wrong with getting a few hits before the fifth."
The Cardinals, who also got a big defensive game from second baseman Matt Carpenter, lead the division by a game after Pittsburgh lost. They're 6-1 on a nine-game homestand.
"Two different times, not giving up plays up the middle really saved us," starter Adam Wainwright said. "Grinding out at-bats all day, too, that's who he is."
Kozma entered in the eighth inning as a pinch runner, later stole third base and scored the tying run.
Zunino couldn't handle the first pitch to Matt Holliday, with the ball rolling free and Kozma scoring on a head-first slide.
"Just ready for anything," Kozma said. "You've just got to do anything you can to get home safely."
After viewing replays, Zunino said it was "just one of those things."
"I just sort of lost track of it," he said. "It trickled away just too far. It's frustrating, I take a lot of pride in my defense."
Rookie Kevin Siegrist (3-1) worked around two hits in the 10th for the win. He has not allowed a run in 19 1/3 innings.
Zunino homered for the Mariners, who have lost a franchise-record 13 games in extra innings, including their last six in a row.
The Cardinals have won their last four extra-inning games. Gold Glove catcher Yadier Molina helped them get there this time, throwing out pinch-runner Endy Chavez and Dustin Ackley when they tried to steal in the ninth.
Hisashi Iwakuma allowed three hits in seven scoreless innings for Seattle.
Wainwright allowed a run in eight innings. The 16-game winner was hurt only by Zunino's 435-foot homer in the fifth, a cutter that drifted over the plate that Wainwright called "probably the worst pitch of my life."
Seattle second baseman Nick Franklin dropped pinch-hitter Brock Peterson's towering pop fly in the eighth for a two-base error that helped the Cardinals tie it. Kozma stole third on Carpenter's full-count walk, then scored on Jay's grounder off Charlie Furbush.
"It's our youth," Seattle manager Eric Wedge said. "You saw it again tonight. Multiple plays that have to be made."
Carpenter made two nice plays up the middle. He caught Franklin in a rundown for the last out of the fifth after Abraham Almonte's infield hit, then made a sliding stab in the outfield grass and threw to first from his knees to rob Zunino of a hit.
The Cardinals struggled against Milwaukee pitching the previous series, with Wily Peralta and Marco Estrada both carrying no-hit bids into the sixth. St. Louis also struggled against Iwakuma, and one of the biggest cheers came when the final score was posted for the Pirates' 5-4 loss to the Cubs.
Zunino had been 4 for 30 in 10 games since coming off the 15-day disabled list from a broken left hand that sidelined him more than a month. He connected for his third homer of the season and first since July 22.
Iwakuma topped 200 innings for the season in the fourth. ... It was 70 degrees at game time, a 25-degree drop from two days earlier. ... Carpenter hit his major league-leading 49th double. ... A pair of rookies get the call on Saturday night, with Michael Wacha (3-0, 2.72) making his seventh career start for the Cardinals and James Paxton (1-0, 1.50) making his second career start for Seattle. ... Former Cardinals 3B Ken Oberkfell threw the ceremonial first pitch. ... Kyle Seager started his 100th consecutive game at 3B, extending his Mariners' franchise record. ... Mariners radio rookie play-by-play man Aaron Goldsmith called a game in his hometown for the first time. ... With attendance of 40,506, the Cardinals topped 3 million for the season for the 10th straight season.