Apja, Horn Géza kőművessegédként, később szállítómunkásként dolgozott, anyját Csörnyei Annának hívták. A hétgyermekes család Angyalföldön (Budapest XIII. kerület) élt. Apját 1944. márciusban a Gestapo elhurcolta, útban Németország felé agyonlőtték.
1943-ban, az ötödik osztály után kimaradt az elemi iskolából, s kifutófiúnak állt. 1945- ben műszerésztanoncnak szegődött a Siemens Művekhez. 1948–1949-ben egy év alatt elvégezte az általános iskola három utolsó osztályát, és felvették az Oleg Kosevoj Szovjetösztöndíjas Előkészítő Iskolába, ahol a következő évben szakérettségit tett, s tanulmányait a Szovjetunióban, a rosztovi (Rosztov-na-Donu) Állami Közgazdasági és Pénzügyi Főiskolán folytatta. 1954-ben közgazdász oklevelet szerzett, hazatérését követően belépett a Magyar Dolgozók Pártjába, három hónapos tartalékos tiszti iskolát végzett, s az év őszén a Pénzügyminisztérium forgalmiadó-főosztályán kapott előadói állást.
Az 1956-os forradalom alatt és után játszott szerepe pontosan nem tisztázott: az biztos, hogy novemberben az elsők között igazolt át a széthullott MDP utódaként megalakított Magyar Szocialista Munkáspártba, s legkésőbb december (1990 előtti életrajzai szerint november) közepétől 1957. júniusig karhatalmistaként vette ki a részét a megtorlásból, amiért még ugyanabban az évben a Munkás-Paraszt Hatalomért Emlékéremmel tüntették ki.
A Pénzügyminisztériumból 1959-ben a Külügyminisztérium szovjet osztályára helyezték át, ahol gazdaságpolitikai kérdésekkel foglalkozott. 1961-től a szófiai, 1963-tól a belgrádi magyar nagykövetség attaséja volt, 1965-ben nagykövetségi titkárrá, 1968-ban I. osztályú nagykövetségi titkárrá, 1969-ben nagykövetségi tanácsossá lépett elő. 1969. májustól az MSZMP Központi Bizottsága Külügyi Osztályán dolgozott politikai munkatársként, 1974. májusban ugyanott osztályvezető-helyettessé, 1983. júliusban osztályvezetővé nevezték ki. 1970-re elvégezte az MSZMP KB Politikai Főiskoláját, 1977-ben „A jugoszláv gazdasági rendszer” című disszertációja megvédésével elnyerte a közgazdaság-tudományok kandidátusa tudományos fokozatot.
1985. március 28-án az MSZMP XIII. kongresszusán bekerült a Központi Bizottság soraiba, 29-étől a Külügyminisztérium államtitkáraként folytatódott pályafutása. 1987–1988- ban részt vett a Minisztertanács Nemzetközi Gazdasági Kapcsolatok Bizottságának munkájában. 1988. júniustól tagja volt a Pozsgay Imre vezette történelmi tényfeltáró munkabizottságnak, 1988. decemberben a KB akkor felállított Nemzetközi, Jogi és Közigazgatáspolitikai Bizottsága titkára lett (az elnök Grósz Károly pártfőtitkár volt). A KB 1989. június 23–24-i ülésén az MSZMP Politikai Bizottsága helyébe lépő nagyobb létszámú testület, a Politikai Intéző Bizottság tagjává választották.
Országos, majd európai szintű ismertségre 1989. májustól Németh Miklós kormányának külügyminisztereként tett szert. 1989. június 27-én Alois Mock osztrák külügyminiszterrel együtt látványosan átvágta az Ausztria és Magyarország közötti, felszámolás alatt lévő műszaki határzár egy még meghagyott darabját – vagyis a kelet– nyugati szembenállást, a hidegháborút szimbolizáló vasfüggönyt. Szeptember 10-én ő jelentette be a kormány döntését, hogy a kétoldalú megállapodások ellenére megnyitják a határt a Magyarország területéről Nyugatra igyekvő több tízezer keletnémet menekült előtt, amely az első lépésnek tekinthető Németország újraegyesítése felé, s felgyorsította a kelet- európai kommunista rendszerek összeomlásának folyamatát. (A magyar kormány ez irányú döntéseit Nyugat-Európában Horn személyéhez kötötték, s később számos elismerésben részesítették: többek között 1990-ben az aacheni Károly-díjjal tüntették ki, 1991-ben Habsburg Ottó mondott laudációt az európai tiszteleti szenátori beiktatásakor, 2014-ben az Európai Parlament épületében termet neveztek el róla.)
1989 októberében szerepet játszott az MSZMP feloszlatásában és a jogutód Magyar Szocialista Párt megalakításában, amelyben az országos elnökség tagjaként a kezdetektől jelentős befolyással rendelkezett. 1990. március 10-én a magyar kormány részéről ő írta alá Eduard Sevarnadze külügyminiszterrel a szovjet csapatok magyarországi kivonásáról szóló államközi egyezményt Moszkvában. Az 1990. március–áprilisi első szabad választásokon parlamenti mandátumot szerzett, s egészen 2010-ig a törvényhozás tagja maradt, 1990. május–1993. január között az Országgyűlés külügyi bizottságának elnöke is volt.
Külügyminiszteri posztját az Antall-kormány 1990. május 23-i megalakulásáig töltötte be. Május 26-án ő követte a gyenge választási szereplés miatt lemondott Nyers Rezsőt az ellenzéki szerepbe kényszerült és elszigetelődött MSZP elnöki székében. A kormányzó konzervatív és az ellenzéki liberális pártok között feszülő ellentéteket – amit tetézett a legnagyobb kormánypárton belüli jobboldali radikális csoport nyílt fellépése – kiaknázva 1992/1993-ra sikerült kijuttatnia az MSZP-t a politikai karanténból. Vezetésével a szocialisták sikeresen használták fel az életszínvonal-cs
ökkenés miatti elégedetlenséget és az ennek nyomán a Kádár-korszak iránt feltámadó nosztalgiahangulatot, hogy növeljék pártjuk népszerűségét. Az 1994. májusi parlamenti választások legfőbb esélyeseként, a kampány véghajrájában a pártelnök súlyos autóbalesetet szenvedett; ez is hozzájárult ahhoz, hogy az MSZP abszolút többséget szerzett a parlamentben. Ugyanakkor legitimációjának megerősítésére koalícióra lépett a második legnagyobb rendszerváltoztató erővel, a Szabad Demokraták Szövetségével.
1994. július 15. és 1998. július 6. között Magyarország miniszterelnöke volt. Kormányzása idején lezárult a privatizáció lényegi szakasza, a gazdaság fellendítése érdekében neoliberális megszorító intézkedéseket – a pénzügyminiszterről elnevezett Bokros- csomag – vezettek be, s eldöntötté vált az ország felvétele a NATO tagállamai közé. 1996. szeptemberben a Szocialista Internacionálé közép-kelet-európai térséget képviselő alelnökévé választották. Az 1998. májusi választási vereség után a szeptemberi tisztújító kongresszuson nem jelöltette magát újra pártelnöknek, de 2003. novemberig a Szocialista Internacionálé alelnöke maradt. 2002-ben Medgyessy Péter miniszterelnök európai uniós különmegbízottjának nevezte ki. 75. születésnapjára Gyurcsány Ferenc miniszterelnök a legmagasabb állami kitüntetésre, a Magyar Köztársasági Érdemrend nagykeresztjére terjesztette fel, de az 1956-os forradalom utáni megtorlásban játszott szerepe miatt Sólyom László államfő megtagadta elismerését. 2007. augusztus végétől haláláig súlyos betegsége miatt folyamatos kórházi kezelés alatt állt.