Ewan McGregor sang an emotional tribute to the late David Bowie at a concert on Wednesday night.

The Star Wars actor delivered a passionate, almost theatrical, rendition of Heroes, one of the late musician's greatest hits, at a charity concert in memory of Bowie at The Roxy in West Hollywood.

McGregor, who could be seen throwing his hands high into the air during the performance, previously covered the Bowie classic as part of the Elephant Love Medley in 2001's Moulin Rouge!, where he portrayed Christian the poet.

The 44-year-old actor took to Instagram afterwards to tell fans: "Played @theroxy last night... I did!!

"What a night. 4 hours of Bowie songs with legendary musicians I was lucky to get up there and sing Heroes. Thanks Scrote for having me and Paul Bushnel for starting us off with such feel. #iwanttobeamusician #joinedthewrongqueue"

Batman star Gary Oldman was also on hand to lend his voice to The Man Who Sold the World, the title track from Bowie's third album.

However, as impressive as Oldman and McGregor's performances were, music's elite stepped up to provide the evening's highlight.

Ewan McGregor singing a Bowie tribute (Image: Splash)

David Bowie died earlier this month

Mike Garson, who played the piano on Bowie's Aladdin Sane, spoke for length about his relationship with the singer, who passed away earlier this month after a battle with cancer.

To close the evening, Seal, supported by Garson, surprised the crowd with a version of Bring Me the Disco King.

Proceeds from the evening supported Max's Kansas City Project, a mentoring initiative for teenagers that also provides financial relief for "distressed individuals in the creative and performing arts," covering housing, medical and legal aid.