Denny Hamlin passed rookie William Byron on the last lap to win his second NASCAR Xfinity Series race at Michigan International Speedway on Saturday. Hamlin, who has won twice here at the Cup level, benefitted from a late restart to deny Byron his first series win.

The finish (0.012 seconds) is the closest ever for a NASCAR Xfinity Series race at Michigan International Speedway.

Brad Keselowski, who hails from Rochester Hills, Mich., edged out Hamlin in Stage 1 despite getting tangled up with rival Kyle Busch on the first lap of the race. The crash sent Busch to the rear of the field with heavy damage, forcing the 2015 NASCAR Monster Energy Cup Series champion to battle his way to a fifth-place finish.

Elliott Sadler was able to win Stage 2 after a late caution brought Keselowski, who was leading, onto pit road. Keselowski doesn't regularly race in the Xfinity Series and appeared to be more concerned with getting fresh tires than stage points at that time.

Busch, Hamlin, and Keselowski will each line up in the top 12 for Sunday's FireKeepers 400 at Michigan. Make sure to check out our predictions as well as the latest odds before the green flag flies.

Here's how the top 10 finished:

Irish Hills 250 Results

  1. Denny Hamlin (34 laps led)
  2. William Byron (8 laps led)
  3. Elliott Sadler (14 laps led)
  4. Brad Keselowski (54 laps led)
  5. Kyle Busch (1 lap led)
  6. Ty Dillon
  7. Paul Menard
  8. Ryan Reed
  9. Brandon Jones
  10. Cole Custer

2017 NASCAR Xfinity Series Driver Standings

POS

DRIVER

CAR #

POINTS

BEHIND

STARTS

WIN

1

Elliott Sadler

1

460

LEADER

13

0

2

Justin Allgaier

7

439

-21

13

1

3

William Byron

9

388

-72

13

0

4

Daniel Hemric

21

339

-121

13

0

5

Brennan Poole

48

326

-134

13

0

6

Ryan Reed

16

325

-135

13

1

7

Darrell Wallace Jr.

6

321

-139

13

0

8

Cole Custer

00

309

-151

13

0

9

Matt Tifft

19

295

-165

13

0

10

Michael Annett

5

273

-187

13

0

11

Blake Koch

11

263

-197

13

0

12

Dakoda Armstrong

28

243

-217

13

0

13

Brendan Gaughan

62

228

-232

13

0

14

Ryan Sieg

39

212

-248

13

0

15

JJ Yeley

14

197

-263

13

0

16

Brandon Jones

33

196

-264

13

0