Originellement chercheur en histoire, il se tourne ensuite vers la littérature avec ses « romans-histoire » qui constituent l'essentiel de son œuvre. Ses premiers romans, qu'il appelle des ouvrages de « politique-fiction », ont été écrits sous le pseudonyme de Max Laugham. Écrivain prolifique et biographe à succès, il est élu membre de l'Académie française au fauteuil 24 le 31 mai 2007.
En 1981, il est élu député sous l'étiquette du Parti socialiste, puis devient porte-parole du troisième gouvernement Mauroy. En 1992-1993, il quitte le PS pour suivre Jean-Pierre Chevènement lors de la fondation du Mouvement des citoyens. Il soutient ensuite Chevènement lors de l'élection présidentielle de 2002, puis Nicolas Sarkozy en 2007.