CHICAGO -- A year ago, Starlin Castro was preparing for his second All-Star Game. On Friday, he was focused on his swing.
Castro hit a solo home run in the eighth, but it wasn't enough as Carlos Beltran smacked an RBI triple and scored on Allen Craig's single in the first inning to help Joe Kelly pick up his first win of the season in the Cardinals' 3-2 triumph over the Cubs in front of 37,322 at Wrigley Field.
This was a battle of two swingmen, Kelly and Carlos Villanueva. The Cubs' starter did his job, lasting six innings and keeping it close, but Villanueva still took the loss in his 10th start and 26th outing. The right-hander began the year in the rotation, then shifted to the bullpen when Matt Garza returned from the disabled list, and was making his second start since shifting back to starting after Scott Feldman was traded.
"I just couldn't put those guys away," Villanueva said. "We did exactly what we wanted to do but didn't execute the pitches. It just comes down to that. I have to give a lot of credit to [catcher Welington] Castillo. We've been working real hard and talking about our game plan and communicating better. Our last two games, we've done a good job and doing exactly what we want."
St. Louis struck quickly as Matt Carpenter singled to lead off the game and scored one out later on Beltran's triple to right, the first of three hits by the outfielder. Craig followed with an RBI single for a 2-0 lead.
Luis Valbuena walked with one out in the third and scored two batters later on Alfonso Soriano's single. Kelly was making his third start of the season after 21 relief appearances.
With two outs in the Cardinals' seventh against reliever Matt Guerrier, pinch-hitter Rob Johnson tripled to right past a diving Nate Schierholtz -- who probably shouldn't have dove -- and then scored on Carpenter's double into the gap in left center.
This was a 3:05 p.m. CT start, which meant batters had to deal with sharp shadows late in the game.
"You want the lead, that's for sure," Cubs manager Dale Sveum said. "It ain't too fun to hit in those kind of shadows. There weren't a lot of good approaches or good swings when those shadows were out there."
Castro saw the ball fine in the eighth when he led off against Kevin Siegrist with his sixth home run to close the deficit to 3-2. In his last 16 games since June 26, Castro is batting .299. On June 23, he was batting .228, and Sveum decided to sit the shortstop.
Sveum and hitting coach James Rowson convinced Castro to make an adjustment with his leg kick that puts him in a much stronger position to hit. Castro is able to handle the fastball better, is trying to hit the ball to the middle or the opposite field and staying closed with his stance.
"I feel aggressive and feel like I trust myself and good things will be happening," Castro said. "You just let your talent do its job and keep working. It's frustrating sometimes because you're working hard and the things that are supposed to happen don't happen. It's hard."
"He has the leg lift," Sveum said, "but now he's using it for the purpose it's meant to be. He's getting on his backside and the knee is getting over his back foot and he's not front forward. It gives you the ability to use your hands and get to a fastball when you do that."
Castro may be making strides -- he's batting .302 this month compared to .167 in June -- but he won't be at Citi Field on Tuesday.
"I'm a little sad because I played in [the All-Star Game in] back-to-back years," Castro said. "I don't put my head down. I keep my head up. I have a lot of years coming."
Villanueva is keeping his head up, too. Despite the loss, he collected his sixth quality start and retired the last 12 batters he faced. His velocity improved as the game went on. The right-hander said he's never lost that starter mentality.
"You don't want to say it's a light switch, but I feel I can adapt well and quick," Villanueva said. "I felt good and my arm felt strong. Maybe the time I had in the bullpen rested it a little bit. Hopefully, I can continue to give the boys a chance to win in the second half."
Carrie Muskat is a reporter for MLB.com. She writes a blog, Muskat Ramblings, and you can follow her on Twitter @CarrieMuskat. This story was not subject to the approval of Major League Baseball or its clubs.