MARTINSVILLE, Va. — Kyle Larson never thought he would tame the half-mile, paperclip-shaped track at Martinsville Speedway.

And then came Sunday.

Larson passed Joey Logano with 29 laps to go and went on to win his second Cup Series race of the season on a day when NASCAR welcomed back Chase Elliott.

It was the 21st career Cup Series win for Larson and 15th in the last three seasons for the 2021 Cup champion.

Larson has struggled mightily at Martinsville in the past.

In his previous 17 races here, he had only three top-five finishes and never finished better than third.

“I never, ever would have thought I would have won here,” Larson said. “This place has been so tough on me and just does not suit my driving style at all. … I just can’t believe it.”

Because of his lack of past success at the track, Larson joked that he doesn’t have room picked out for where to keep the 6-foot tall grandfather clock awarded to the winner.

Larson said the clock immediately becomes one of his most prized possessions, because it serves as a reminder of how hard he has worked to win at a track where he never felt comfortable.

“I’ve left here just mad. I’ve hated this place, and I’ve wished it would flood,” Larson said with a laugh. “I wished a lot of bad things on this place.”

Logano, who was forced to begin the race in the back of the field after his crew found a leak in his water tank prior to the start, finished second, followed by Martin Truex Jr., Denny Hamlin and Chase Briscoe.

Logano was thrilled with his result, knowing he didn’t have the car to hold off Larson late in the race on a restart.

“We got lapped twice and at one point I would have been happy to finish on the lead lap,” Logano said with a laugh.

His luck changed when he stayed out on the track when he caught a timely yellow caution flag, helping him suddenly land in the top five and in contention to win.

“There are days when you are mad about second place, but today is not one of those,” Logano said.

Elliott, voted NASCAR’s most popular driver the last five years, finished 10th in his first race since breaking his leg in a snowboarding accident that forced him to miss six weeks.

He ran in the mid-20s for most of the race before closing strong.

“It was warm and I have been sitting on a couch for six weeks, so that probably hurt me more than anything,” Elliott said. “But we struggled really bad, honestly. Every run but the last one. We finally got it going at the end and made some passes.”

Because he’s so far behind in the points race, Elliott likely needs a victory to get into the playoffs. He qualified 24th for Sunday’s race.