Ben Whishaw débute au cinéma en 1999 avec Mauvaise passe de Michel Blanc. Il tourne d’autres films et suit les cours d’art dramatique du Royal National Theatre de Londres.
Remarqué ensuite dans le rôle d’Hamlet à l’Old Vic Theatre, il est sollicité pour donner la réplique à Dustin Hoffman dans Le parfum (2006) de Tom Tykver : son interprétation de l’assassin Jean-Baptiste Grenouille lui vaut une nomination au Prix du cinéma européen du meilleur acteur.
Après ce succès, Ben Whishaw interprète Arthur Rimbaud dans I’m Not There (2007) de Todd Haynes, et surtout le poète John Keats dans Bright Star (2009) de Jane Campion. Le succès mitigé du film, pourtant sublime, ne semble pas lui permettre de se maintenir en tête d’affiche.
Dans les années 2010, il interprète des seconds rôles dans des œuvres décalées, troisième docteur dans Le théorème zéro (2013) de Terry Gilliam, boiteux dans The Lobster (2015) de Yórgos Lánthimos, ou scientifique dans Little Joe (2019) de Jessica Hausner.
On le voit aussi dans des films grand public, tels Danish Girl (2016) de Tom Hooper, ou Le retour de Mary Poppins (2018) de Rob Marshall.
Ben Whishaw est également connu pour avoir repris le rôle de Q dans la franchise James Bond, à partir de Skyfall (2012). Il succède ainsi à Peter Burton, Desmond Llewelyn et John Cleese.