LOS ANGELES-Miley Cyrus surprised the crowd at the iHeartRadio Music Festival by performing with punk rocker Billy Idol.

The 23-year-old pop star joined the British veteran on stage at the T-Mobile Arena in Las Vegas on Friday for a special performance of Idol's 1983 hit Rebel Yell.

The 60-year-old impressed the crowd with hits including Dancing with Myself and White Wedding, before bringing out Miley for the surprise duet.

"Singing with me... Miley Cyrus! Let's hear it!" Idol announced to the crowd.

"Singing with Billy f**king Idol, let's do it!" Miley yelled back. The new US The Voice judge was decked out in a special tribute to the rocker, wearing a cropped T-shirt, leather trousers, leather jacket and sunglasses emblazoned with Idol's name.

And Idol, real name William Broad, wore a matching ensemble as the pair belted out his hit.

Miley is no stranger to Idol's back catalogue - she previously performed Rebel Yell back in 2012 for a VH1 Divas show.

U2 were the Friday night headliners at the two-day music festival, with Sia and Drake also performing. The Canadian rapper enlisted the help of the crowd to sing Rihanna's part on their duet Work, before Sean Penn made a surprise appearance to introduce U2 to the stage, Billboard.com reports.

The Irish rockers performed a politically-charged set, with Republican presidential candidate Donald Trump's image flashing up on the huge screen behind them.

"What do you have to lose? Everything," U2 frontman told the audience in reference to the looming US presidential elections in November.

Their headline set included hits Beautiful Day, One and Pride (In the Name of Love), before finishing with Still Haven't Found What I'm Looking For.

The iHeartRadio Music Festival concludes on Saturday , with performances from Sting, Britney Spears and Usher.