CHICAGO — A month ago, Carlos Rodon was deep into a disappointing season. However, the 23-year-old left-hander now is in the midst of a major turnaround.

Rodon pitched into the seventh inning, Justin Morneau had a two-run single and Melky Cabrera drove in a run and scored twice to lead the Chicago White Sox to a 4-1 victory over the Seattle Mariners on Sunday.

Rodon (5-8) allowed the run and five hits in six-plus innings to go 3-0 with a 1.47 ERA in his last five starts.

“You could say the beginning of the year wasn’t too good,” he said, “but it’s all about how you finish.”

Jose Abreu also drove in a run to help Chicago, which took three of four in the series and has won six of eight.

Robinson Cano hit a solo homer, his 30th, and Kyle Seager had three hits for the Mariners.

“We just didn’t get much going offensively,” Seattle manager Scott Servais said. “You’ve got to get hits with runners in scoring position. It was a tight game. We just didn’t get the big hits at the end.”

Rodon got a big boost from the Chicago bullpen on that end. Chris Beck and Dan Jennings worked out a jam in the seventh, Nate Jones pitched a 1-2-3 eighth and David Robertson got the last three outs for his 33rd save in 39 chances.

Chicago center fielder Adam Eaton left the game due to a bruised forearm in the fifth — an inning after being hit by a pitch. X-rays were negative and he is listed as day-to-day.

Seattle starter Taijuan Walker (4-9) allowed four runs on four hits in 7 1/3 innings. He also hit three batters.

Walker was perfect through three innings, but then started the fourth by hitting Eaton. One out later, Cabrera doubled to put runners on second and third. Abreu was hit by a pitch to load the bases and Morneau followed with a single to left for a 2-0 lead.

Seattle got a run back in the sixth on Cano’s solo shot.

Rodon was lifted in the seventh after giving up hits to Seager and Franklin Gutierrez to start the inning. Catcher Mike Zunino then tried to advance the runners with a sacrifice bunt against Beck, but third baseman Todd Frazier fielded the bunt and fired to second base for the force out.

That play proved crucial when Jennings induced pinch-hitter Adam Lind to ground into an inning-ending double play.

“He got me that win right there, Dan Jennings,” Rodon said.

Chicago added a two runs in the eighth on an RBI triple by Cabrera and a sacrifice fly by Abreu to ensure Rodon’s win.

“He’s fun to watch,” Jennings said of Rodon. “He’s got incredible stuff. He’s going to be as good as he wants to be. He is growing and he is learning. His potential is unlimited.”

30-HR CLUB

Cano reached 30 homers for the second time in his career. He had 33 in 2009.

“He’s had a phenomenal year, really from the get-go, from the opening series of the season all the way through,” Servais said. “He’s been the constant in our lineup. Even when it doesn’t look like he’s swinging the bat that well, he does have a knack for finding holes and getting hits and keeping it going.”

TRAINER’S ROOM

Mariners: 3B Seager (bruised right foot) was in the lineup for a second straight day after missing the previous three games. “He looked fine,” Servais said. “Is he 100 percent? Probably not.”

White Sox: The return of 2B Brett Lawrie (left hamstring) remains uncertain. He’s cleared medically, but is experiencing discomfort. “He still feels like there’s something there,” manager Robin Ventura … RHP Miguel Gonzalez (groin) is expected to make a rehab start this week after throwing a simulated game on Saturday.

UP NEXT

Mariners: RHP Hisashi Iwakuma (14-9, 3.81 ERA), who’s gone at least seven innings in 12 of his 26 starts, faces RHP Yu Darvish (4-3, 2.91) Monday in the opener of a three-games series at Texas.

White Sox: RHP James Shields (5-16, 5.98 ERA) looks to rebound Monday in the opener of a three-game series at Detroit after going 0-4 with a 13.95 ERA in last 5 starts. LHP Matt Boyd (5-2, 3.98) goes for the Tigers.