Indiana Jones has defeated James Bond to be named the greatest movie character of all time.

Harrison Ford, 72, also took third place for his role as Han Solo in the Star Wars films in the poll voted for by readers of Empire magazine.

The actor has played Indiana Jones in four films, starting with Raiders of the Lost Ark in 1981 and most recently in 2008's Indiana Jones and the Kingdom of the Crystal Skull.

Director George Lucas created both action hero archaeologist Indy and intergalactic rebel Han Solo, whom Ford will reprise in new movie Star Wars: The Force Awakens, due for release later this year.

British spy and ladies man James Bond was placed second in the poll, after just narrowly missing out on the top spot. The secret agent, known as 007 and created by author Ian Fleming, has been played on the big screen by Sean Connery, Roger Moore, David Niven, George Lazenby, Timothy Dalton, Pierce Brosnan and Daniel Craig.

The only female character to make the list was Ellen Ripley, Sigourney Weaver's character in Ridley Scott's sci-fi classic Alien. She took fifth place, just behind Batman.

The poll, voted for by over 10,000 people on empireonline.com also named the top 10 greatest TV characters.

Breaking Bad's Walter White was named number one, with Doctor Who's Time Lord coming fourth, behind Game Of Thrones hero Tyrion Lannister, played by Peter Dinklage, and cartoon character Homer Simpson.