‘Dancing With the Stars’ Finale: Hannah, Ally, Kel, & Lauren Face Off for the Mirror Ball (RECAP)

Spoiler Alert
ABC/Eric McCandleless

Tonight’s the night we’ve all been waiting for on Dancing With the Stars and after weeks of blood, sweat, and a couple of perfect scores, we finally have our Season 28 winner. But it didn’t come easily.

With two difficult rounds kicking off the finale, the four finalists — Hannah Brown, Ally Brooke, Kel Mitchell, and Lauren Alaina — had their work cut out for them. In Round 1, the stars and their pro partners performed one repeat performance from earlier in the season and in Round 2, they each performed a freestyle dance.

Read on for highlights from the finale, including scores, judges’ comments, and who won Dancing With the Stars tonight.

Ally Brooke’s first dance

The pop star, who has pulled in her fair share of perfect scores this season, reprised her Jive routine from Week 4 to Tina Turner’s “Proud Mary” alongside pro partner Sasha Farber and totally brought her A-game.

Judge Len Goodman was especially impressed, telling the singer she has a good shot at winning the Mirror Ball trophy after her energetic performance. Carrie Ann Inaba also weighed in, reminding Ally that it’s her impressive talent that’s gotten her to the finale. “I can’t express this enough, that is why you are here tonight. You are brilliant,” she said.

Not surprising, the consistent performer brought in yet *another* perfect score.

Lauren Alaina’s first dance

The country star once again danced her Foxtrot routine to Dolly Parton’s “Jolene” along with pro partner Gleb Savchenko, which the couple originally performed during Week 4 and was beaming throughout the entire dance.

But her smile wasn’t enough. While Carrie Ann said the singer has improved as a dancer, she called her out for holding back emotionally in her performance. She even went as far as to ask if she was OK, to which Lauren replied she’s “better than OK.”

“You have one more dance and I just want to see you let it all out,” she added.

Still, even with that critique, she earned 9s across the board.

Kel Mitchell’s first dance

For their repeat performance, the All That star and pro partner Witney Carson chose to reprise their high-energy Jazz routine to High School Musical’s “We’re All in This Together” which they originally performed during Disney Night.

“That was great the first time you did it. It was better the second time you did it. You make everything look so easy,” Carrie Ann said.

Len called the actor the “leader of the pack,” adding that he thought it was “fantastic.”

The judges unanimously gave the Good Burger star 10s across the board.

Hannah Brown’s first dance

The former Bachelorette chose to reprise her Viennese Waltz to Taylor Swift’s “Lover” which she originally performed during Week 2 of the competition. Dancing with pro partner Alan Bersten, the reality star appeared to be on cloud nine.

Carrie Ann said it was the reality star’s best dance of the entire season, while Len said she had “lovely sweeping movement across the floor.”

Bruno agreed, and said she was so much more confident and engaging in the final week. Though he called out a misstep, Hannah admitted she was lost in the moment.

Overall, she earned a 28, with a 10 from Carrie Ann and 9s from Len and Bruno.

Ally Brooke’s final dance

The pop star admitted her freestyle number to “Conga” by Gloria Estefan was a “celebration of the incredible dances” she’s performed with Sasha throughout the season. In yet another energetic performance, the judges were once again blown away.

“Unleash the star power!” Bruno said. “When I was watching, I was like, ‘Who is this, Jennifer Lopez?'”

Carrie Ann, who said she’s seen every single freestyle routine, told the pop star she’s “never seen a freestyle performance like that.”

And it wouldn’t be an Ally Brooke performance without a perfect score — which she obviously earned for this number.

Lauren Alaina’s final dance

The country star admitted that winning the trophy would “mean the world” to both her and Gleb, which is why she gave it her all in her freestyle number to “Country Girl” by Luke Bryan.

“This was the perfect freestyle for you,” Carrie Ann said. “That was a great end.”

“It was full of entertainment. I didn’t know what was going to happen. One of the keys to dancing freestyle is expect the unexpected, and that’s why I got,” Len added.

The singer earned her first perfect score of the entire season. “I’m just really proud to be here. I got a perfect score, Mom!” she cheered.

Hannah Brown’s final dance

With or without a mirror ball, the reality star admitted she’s most proud to have a friend in her pro partner, Alan. “This is the last time that Alan and I will dance together on this dance floor,” she said of her freestyle dance to “Girl on Fire” by Alicia Keyes. “It’s going to be bittersweet. But I’ve never felt more confident. Alan and I can take on anything.”

“You came out sharp, crisp. You really threw me and it was great,” Len said.

“Hannah Brown, you are living your best life. It’s so beautiful to see. That was a victorious freestyle,” Carrie Ann added.

And the reality star earned her first perfect score of the season. Way to go out with a bang.

Kel Mitchell’s final dance

To say the actor brought his A-game for his last dance would be an understatement. Kel danced a fast-paced freestyle to “Jump” by Kris Kross and the judges were definitely pleased.

Bruno called the performance “exhilarating,” saying that he “brought the house down.” Even host Erin Andrews said it was the “best freestyle in the history of the show.”

Though Len thought the dance was “really good,” he took issue with the fact that the style was similar to his first performance of the night.

The actor managed to pull two 10s from Carrie and Bruno, and a 9 from Len.

Who won DWTS tonight?

Though it was a fierce competition, there can only be one winner of Season 28. Lauren ended up in fourth place and Ally in third place, which left Kel and Hannah in the final two.

Combined with the judges score and America’s votes, the winner of Dancing With the Stars is … Hannah Brown! Looks like she got her happy ending after all.

View this post on Instagram

Winning #DWTS > losing Jed Wyatt. Congrats Hannah & Alan! #dancingwiththestars #dwtsfinale #hannahbrown #jedwyatt #thebachelorette #thebachelor #bachelorabc #bachelor

A post shared by The Bachelor Memes (@shesallbach) on