ST. LOUIS -- On a chilly, windy night when hitting the ball out of Busch Stadium was impossible, pitching and defense ruled.
The Cubs did both a bit better Tuesday than the St. Louis Cardinals, and Chicago avenged a season-opening loss with a 2-1 victory.
Jake Arrieta tossed six sharp innings for the win, giving up four hits and an unearned run with two walks and six strikeouts. Jason Heyward knocked in a run in the fourth with a bloop single, and Javier Baez added the Cubs' other RBI by dropping a safety squeeze that scored Willson Contreras on the next pitch.
"It's what you expect when you face this team," Arrieta said of St. Louis. "Tough, contested games from start to finish."
But it was Chicago defense that ultimately ushered the Cubs into the clubhouse with a win. Center fielder Albert Almora denied a potential tying homer from Matt Adams in the seventh inning, getting to the wall just to the left of the 402-foot sign and sticking his glove above the barrier to haul in Adams' towering fly.
"I owe Almora something for that," Arrieta said. "That catch was a game-saver."
It was one of four dazzling plays turned in by the Cubs, who marry good athletes at almost every spot with solid defensive positioning that can leave opponents wondering sometimes if they have about 12 guys out there.
Third baseman Kris Bryant made a diving stop on Aledmys Diaz's hard grounder near the bag that was ticketed for the left field corner in the fourth and threw him out, denying him a possible double that could have scored the speedy Dexter Fowler from first.
In the sixth, Heyward raced into the gap in right-center to deny Matt Carpenter an extra-base hit with a leaping grab. To end the game, Baez ranged almost behind first to glove Kolten Wong's grounder with a dive, then threw from his knees to nip the speedy Wong by a half-step.
Cardinals manager Mike Matheny asked for a review, but replay confirmed what Quinn Wolcott accurately called: The ball barely beat Wong, and Chicago was able to celebrate.
"What he does at second is different," Cubs manager Joe Maddon said of Baez. "I think the clock has slowed down for him, and I think our whole defense played that way tonight. It's how you win a game 2-1, 3-2 or 1-0."
It was ironic that Baez made two errors on the play which produced St. Louis' only run. Trying to glove Wong's soft grounder that was ruled a hit, Baez bobbled it, enabling Stephen Piscotty to score from second on a hustling play.
Baez's wild throw home struck Piscotty in the left ear, rendering the sellout crowd of 46,760 silent for a few minutes as Piscotty lay behind the plate. After a couple minutes, Piscotty got up and then walked off the field under his own power, although he was removed before the top of the sixth by Matheny.
The Cardinals announced that Piscotty was diagnosed with a head contusion and would be re-evaluated in the morning. He was getting treated following the game and was unavailable for comment.
"I'm not going to speculate about extended time, but we'll wait and see what they say," Matheny said about a prognosis.
Adam Wainwright absorbed the loss for St. Louis, allowing three hits and two runs over five innings with a pair of walks and six strikeouts.
The Cardinals filled the bases with two outs in the sixth on singles by Jhonny Peralta and Yadier Molina, plus a walk to pinch hitter Greg Garcia. But Arrieta's 90th pitch produced a popup from Randal Grichuk that shortstop Addison Russell gloved to end the threat.
St. Louis got one man aboard over the final three innings, as pinch-hitter Jose Martinez walked with one out in the ninth against new Chicago closer Wade Davis. But Davis, with the help of Baez's final play, wrapped it up for the save.
NOTES: St. Louis RHP Trevor Rosenthal (right lat strain) threw a bullpen session Tuesday with no difficulties. Rosenthal, who is on the 10-day disabled list, is scheduled to throw another one this weekend and could return next week. ... Willson Contreras' Opening Night homer marked the second straight year a catcher went deep for the Cubs. Prior to that, the last time it happened was 1996, courtesy of Scott Servais. ... Cardinals 1B Matt Carpenter was hitless in three at-bats against Chicago starter Jake Arrieta, dropping him to 0-for-27 in his career against his old TCU teammate.