CHICAGO (AP) — Carlos Rodon is healthy, and showing signs of rounding into the dominant starter the Chicago White Sox hoped he'd become.

Rodon pitched three-hit, shutout ball into the eighth inning to outduel Luke Weaver and lead the White Sox to a 4-0 victory over the St. Louis Cardinals on Wednesday night.

Tim Anderson tripled and had two RBIs. Charlie Tilson singled in a run off reliever Mike Mayers in Chicago's two-run seventh and Jose Abreu added an RBI groundout as White Sox ended a six-game losing streak and won for just the third time in their last 13.

Rodon (2-3) allowed only two singles and a double while walking two and striking out a season-high seven though 7 1/3 innings. The 25-year-old left-hander, who spent the first two months of 2018 on the disabled list rehabbing from shoulder surgery, sparkled in just his seventh start this season.

Rodon was coming off his strongest outing this season, when he allowed two runs on five hits in a six-inning no-decision at Houston last week. So has the lefty arrived?

"I hope so," manager Rick Renteria said. "He is obviously showing tremendous signs that is the case."

In this one, Rodon looked nothing like the struggling pitcher who was plagued by left biceps bursitis to start 2017 and then underwent shoulder surgery last September.

"I got in a groove," Rodon said. "I started off a little slow and then it started to ramp up.

"Omar (catcher Narvaez) and I got on the same page with almost every pitch and it seemed like things were clicking. When I get that tempo, it goes well."

Joakim Soria got the final four outs for his 13th save in 16 chances.

Weaver (5-8) allowed one run on three hits and fanned seven his second straight impressive start. The right-hander pitched two-hit ball over a career-high eight innings last week in San Francisco.

Weaver and Rodon squared off before in college. Weaver was drafted 27th overall in 2014 out of Florida State. The White Sox picked Rodon third that year from North Carolina State.

"He looked healthy to me," Weaver said. "He had a heckuva game tonight.

"You knew it was going to be a pitchers' duel," Weaver added "You knew he wasn't going to give up many runs, and I tried to do the same. It was a lot of fun (in college) and it was a lot of fun tonight."

Jose Martinez grounded a sharp single off Rodon with two outs in the first. Then the White Sox lefty didn't allow another hit — and retired 14 of 15 batters — before Matt Carpenter doubled with one out in the sixth.

The White Sox managed only three baserunners — with Yolmer Sanchez singling twice — before the fifth, when Chicago took a 1-0 lead.

Leury Garcia came home when Anderson grounded into a force at second.

The White Sox scored twice with two outs in the seventh to make it 3-0. Narvaez singled, then scored on Anderson's triple to the left field corner. Tilson's single plated Anderson.

The Cardinals loaded the bases with one out in the eighth to chase Rodon. Paul DeJong led off with a single, Kolten Wong reached on an error and Carpenter walked.

But Juan Minaya fanned Tommy Pham for the second out, then Soria struck out Martinez to end the threat.

The White Sox added a run in the eighth when Yoan Moncada came home on Abreu's groundout.

ALL-STAR NIX

Cardinals right-hander Miles Mikolas was removed from the National League's active roster for the All-Star Game next Tuesday because he's scheduled to start Sunday against Cincinnati. Los Angeles Dodgers righty Ross Stripling was added to the NL pitching staff Wednesday as Mikolas' replacement.

Mikolas is 10-3 with a 2.65 ERA and was selected to his first All-Star team last weekend. The 29-year-old is enjoying a resurgent season in the majors after three years in Japan.

ROSTER MOVES

The White Sox designated RHP Bruce Rondon for assignment and purchased the contract of RHP Jeanmar Gomez from Triple-A Charlotte before the game The 27-year-old Rondon went 2-3 with an 8.49 ERA and one save in 35 games. The reliever got one out and issued three walks in Tuesday night's 14-2 loss to St. Louis.

TRAINER'S ROOM

Cardinals: CF Tommy Pham (bruised left ankle) was back in the lineup after being a last-minute scratch on Tuesday and struck out four times. Pham fouled a ball off his foot on Sunday. . Manager Mike Matheny said LHP Tyler Lyons (sprained left elbow) is close to returning from his rehab assignment. . RHP Luke Gregerson (right shoulder impingement) could be activated this weekend, but Matheny didn't have a date.

White Sox: RHP Nate Jones (right forearm muscle strain) tossed live batting practice on Wednesday. Jones said he felt good and threw at "90-100 percent," but the next steps in the right-hander's recovery haven't been determined . RHP Miguel Gonzales underwent right shoulder surgery in Los Angeles on Wednesday. His recovery time is expected to be nine to 12 months.

UP NEXT

Cardinals: RHP Carlos Martinez (6-4, 3.05) looks for his fourth straight win when he takes the mound against Cincinnati's Matt Harvey (4-5, 4.80) on Friday in the opener of a three-game home series.

White Sox: RHP James Shields (3-10, 4.53) squares off against Kansas City RHP Brad Kelley (2-3, 2.52) on Friday in Chicago.