Carriera Gli esordi e i primi anni da professionista Tra gli juniores si aggiudica due titoli europei, quello in linea nel 2007 e quello a cronometro nel 2008, e il campionato del mondo a cronometro sempre nel 2008. Nel 2009 gareggia tra i Dilettanti Under-23 con la formazione polacca Mg.K Vis-Norda-Whistle: durante la stagione si laurea campione nazionale in linea di categoria, vincendo poi anche una frazione al Giro di Slovacchia.
Passa professionista nel 2010 con la formazione Continental spagnola Caja Rural; in quell'annata non consegue successi, coglie invece il quarto posto alla Szlakiem Grodów Piastowskich e il settimo alla Volta ao Alentejo, entrambe gare a tappe, e partecipa al Tour de l'Avenir. Per la stagione 2011 si trasferisce al Team RadioShack, sodalizio World Tour statunitense, ottenendo per lo più piazzamenti in brevi corse a tappe. Spiccano i terzi posti finali nella Tre Giorni delle Fiandre Occidentali, nella Tre Giorni di La Panne, entrambe corse belghe, e nel Tour du Poitou-Charentes in Francia. In settembre partecipa anche alle due gare Elite dei campionati del mondo di Copenaghen.
2012-2013: il passaggio all'Omega Pharma-Quickstep Nel 2012 Kwiatkowski passa tra le file della Omega Pharma-Quickstep. In marzo ottiene la prima vittoria da professionista, facendo suo il prologo della Tre Giorni delle Fiandre Occidentali. Dopo aver partecipato al Giro d'Italia, in luglio si classifica secondo nella classifica generale del Tour de Pologne, corsa a tappe del circuito UCI World Tour, battuto dal solo Moreno Moser. Successivamente prende parte ai Giochi olimpici di Londra, correndo nella prova in linea (conclude 60º). È poi ottavo all'Eneco Tour.
Nella primavera 2013 si piazza secondo alla Volta ao Algarve e quarto alla Tirreno-Adriatico, ottenendo poi buoni piazzamenti nelle classiche delle Ardenne – si classifica infatti quarto all'Amstel Gold Race e quinto alla Freccia Vallone. Nel prosieguo di stagione si aggiudica il titolo nazionale Elite in linea e si classifica undicesimo nella graduatoria finale del Tour de France; in quella Grande Boucle ottiene anche due terzi posti parziali e veste per dieci giorni la maglia bianca di leader della classifica dei giovani. In chiusura di stagione, ai campionati del mondo di Firenze, contribuisce al successo della sua Omega Pharma-Quickstep nella cronometro a squadre iridata.
2014-2015: la conquista del titolo mondiale e le classiche
Nei primi mesi del 2014, sempre in maglia Omega Pharma-Quickstep, Kwiatkowski vince il Trofeo Serra de Tramuntana, due tappe e la classifica finale della Volta ao Algarve e la semiclassica italiana Strade Bianche, nella quale precede Peter Sagan e Alejandro Valverde. In aprile si piazza secondo alla Vuelta al País Vasco (vince la classifica a punti) ed è quindi in evidenza nelle classiche delle Ardenne: conclude infatti quinto all'Amstel Gold Race, e quindi terzo sia nella Freccia Vallone che nella Liegi-Bastogne-Liegi; nello stesso mese si aggiudica anche il prologo di apertura del Tour de Romandie. Dopo aver vinto il titolo nazionale Elite a cronometro, al Tour de France non riesce a ripetere il buon piazzamento dell'anno precedente, staccandosi dai migliori quasi sempre in salita e chiudendo al 28º posto della generale, terzo nella classifica dei giovani.
Nella prima metà di settembre conclude secondo al Tour of Britain, facendo sua la tappa con arrivo a Bristol e la classifica a punti. Il 21 settembre seguente conquista la medaglia di bronzo nella cronometro a squadre ai campionati del mondo di Ponferrada con la sua Omega Pharma-Quickstep. Sette giorni dopo si laurea quindi campione del mondo in linea Elite. Quel giorno conquista la maglia iridata grazie a un attacco nella penultima discesa del circuito, a 7 km dall'arrivo, che gli permette di scollinare sull'ultima salita con 9" di vantaggio sugli inseguitori; nei chilometri conclusivi amministra il vantaggio, resistendo al ritorno degli inseguitori. Trionfa con 1" di margine su Simon Gerrans e Alejandro Valverde, diventando il primo ciclista polacco della storia a vincere un titolo mondiale su strada.
Ancora tra le file della Etixx-Quick Step (già Omega Pharma), apre la stagione 2015 alla Volta ao Algarve concludendo secondo nella tappa in salita di Malhão e nella classifica finale della corsa. In marzo vince il prologo della Parigi-Nizza e grazie ad alcuni piazzamenti top 5 chiude secondo nella generale, nonché miglior giovane. Nelle settimane seguenti è quarto alla Dwars door Vlaanderen e secondo nella frazione di apertura della Vuelta al País Vasco; il 19 aprile conquista quindi, in maglia iridata, l'Amstel Gold Race: la classica olandese lo vede imporsi in volata, al termine dell'ascesa del Cauberg, su Valverde e Michael Matthews. Nelle prove dei mesi seguenti rimane però spesso lontano dai migliori, e anche in luglio si ritira dal Tour de France durante la diciassettesima frazione. Non gli riesce infine la difesa del titolo iridato ai campionati del mondo di Richmond: conclude infatti ottavo nella prova in linea vinta in solitaria da Peter Sagan.
2016-2017: l'approdo al Team Sky e la vittoria alla Milano-Sanremo Il Team Sky, ancora privo di successi nelle classiche monumento, lo ingaggia per la stagione 2016. Dopo la vittoria all'E3 Harelbeke, gara World Tour, i risultati non sono quelli sperati e Kwiatkowski si esibisce in performance spesso deludenti, come al Giro delle Fiandre, in cui cerca di andare in fuga con Peter Sagan (poi vincitore in solitaria) concludendo però solo 27º. Anche al Critérium du Dauphiné la sua condizione è scarsa tanto che si ritira e non viene selezionato per il Tour de France. In agosto partecipa ai Giochi olimpici di Rio de Janeiro, senza particolari risultati (chiude quattordicesimo a cronometro). Nello stesso mese viene selezionato per la Vuelta a España dove, assieme ai compagni, vince la cronosquadre di apertura; prende poi parte allo sprint conclusivo della seconda tappa e, grazie al quarto posto, conquista la maglia rossa di leader della generale, perdendola comunque già l'indomani dopo aver lavorato per il capitano Chris Froome. Nel corso della settima tappa, a causa di una caduta, è costretto al ritiro.
Apre il 2017 con il secondo posto nella classifica finale della Volta ao Algarve. Il 4 marzo si aggiudica la sua seconda Strade Bianche, giungendo in solitaria sul traguardo di Siena; due settimane dopo vince quindi la Milano-Sanremo, sua prima "classica monumento", battendo in volata Peter Sagan e Julian Alaphilippe. È poi, nell'arco di otto giorni, secondo all'Amstel Gold Race, superato in volata ristretta da Philippe Gilbert, settimo alla Freccia Vallone e terzo alla Liegi-Bastogne-Liegi, confermando il proprio valore nelle gare di un giorno. Dopo aver fatto suo il titolo nazionale a cronometro, al successivo Tour de France contribuisce come gregario al successo finale del compagno Chris Froome; in quella Grande Boucle ottiene anche il secondo posto nella cronometro di Marsiglia. Pochi giorni dopo la fine della corsa francese riesce quindi a prevalere in volata ristretta alla Clásica San Sebastián.
2018: la Tirreno-Adriatico e il Giro di Polonia
A inizio 2018 si impone in due tappe e nella classifica finale della Volta ao Algarve Vince quindi la classifica finale della Tirreno-Adriatico, dimostrando una ottima condizione, ma alla successiva Milano-San Remo si piazza solo undicesimo. Nelle classiche seguenti non ottiene piazzamenti di rilievo. Dopo un periodo lontano dalle competizioni rientra in gara al Critérium du Dauphiné vincendo il prologo, la cronometro a squadre e vestendo, complessivamente, per tre giorni la maglia di capoclassifica. Si impone quindi nel campionato nazionale in linea e partecipa al Tour de France in veste di gregario di Chris Froome e Geraint Thomas, aiutando quest'ultimo a conquistare la vittoria.
Dopo la corsa francese prende il via del Tour de Pologne nel quale si impone in volata nella quarta frazione, con arrivo su uno strappo impegnativo, andando così a vestire anche la maglia di capoclassifica che poi indosserà fino all'ultimo giorno, vincendo anche la tappa del giorno successivo. Disputa quindi la Vuelta a España con maggior libertà rispetto al Tour de France. Dopo essere arrivato secondo nella cronometro di apertura, alle spalle di Rohan Dennis, si classifica secondo anche al termine della seconda tappa, con arrivo sullo strappo di Caminito del Rey, alle spalle di Alejandro Valverde. Questo piazzamento gli permette di salire al comando della classifica generale. Conserva il primato fino al termine della quarta tappa, con arrivo in salita salvo poi perderlo il giorno successivo grazie ad una fuga-bidone di Rudy Molard, uno dei fuggitivi di giornata. La sua lotta per la classifica generale viene compromessa da una brutta caduta nel corso della quindicesima frazione a causa della quale perde oltre venti minuti dagli altri concorrenti. Tuttavia riesce a proseguire la corsa. Cerca ripetutamente la vittoria di tappa, inserendosi nelle fughe di giornata, senza riuscirci; conclude la corsa spagnola al quarantatreesimo posto della classifica.
Vita privata È sposato dal 2019 con una donna di nome Agata, e nel 2023 diventa padre di una bambina.
Palmarès Strada
2007 (Juniores) 1ª tappa, 1ª semitappa Coupe du Président de la Ville de Grudziądz (Grudziądz > Grudziądz, cronometro) 1ª tappa, 2ª semitappa Coupe du Président de la Ville de Grudziądz (Gruta > Lasin) Classifica generale Coupe du Président de la Ville de Grudziądz 1ª tappa Corsa della Pace Juniores (Mladá Boleslav > Mladá Boleslav) Classifica generale Corsa della Pace Juniores Campionati europei, Gara in linea Juniores 3ª tappa Tour de la Région de Łódź (Łódź > Łódź) 4ª tappa Tour de la Région de Łódź (Sędziejowice > Sędziejowice, cronometro) Classifica generale Tour de la Région de Łódź 2ª tappa Giro della Lunigiana (Marinella di Sarzana > Sarzana)
2008 (Juniores) Trofeo Città di Ivrea 1ª tappa Trofeo Karlsberg (Blieskastel > Saarbrücken) 3ª tappa, 1ª semitappa Trofeo Karlsberg (Böckweiler > Altheim, cronometro) Classifica generale Trofeo Karlsberg 1ª tappa Corsa della Pace Juniores (Mladá Boleslav > Mladá Boleslav) 2ª tappa Corsa della Pace Juniores (Litomerice > Litomerice) 3ª tappa Corsa della Pace Juniores (Třebenice, cronometro) Classifica generale Corsa della Pace Juniores Campionati europei, Cronometro Juniores Campionati del mondo, Cronometro Juniores
2009 (Mg.K Vis-Norda-Whistle) Campionati polacchi, Gara in linea Under-23 2ª tappa Okolo Slovenska (Banská Bystrica > Vráble)
2012 (Omega Pharma-Quickstep, una vittoria) Prologo Tre Giorni delle Fiandre Occidentali (Middelkerke > Middelkerke, cronometro)
2013 (Omega Pharma-Quickstep, una vittoria) Campionati polacchi, Gara in linea
2014 (Omega Pharma-Quickstep, nove vittorie) Trofeo Serra de Tramuntana 2ª tappa Volta ao Algarve (Lagoa > Monchique) 3ª tappa Volta ao Algarve (Vila do Bispo > Sagres, cronometro) Classifica generale Volta ao Algarve Strade Bianche Prologo Tour de Romandie (Ascona > Ascona, cronometro) Campionati polacchi, Prova a cronometro 4ª tappa Tour of Britain (Worcester > Bristol) Campionato del mondo, Prova in linea
2015 (Etixx-Quickstep, due vittorie) Prologo Parigi-Nizza (Maurepas > Maurepas, cronometro) Amstel Gold Race
2016 (Team Sky, una vittoria) E3 Harelbeke
2017 (Team Sky, quattro vittorie) Strade Bianche Milano-Sanremo Campionati polacchi, Prova a cronometro Classica di San Sebastián
2018 (Team Sky, nove vittorie) 2ª tappa Volta ao Algarve (Sagres > Alto de Fóia) 5ª tappa Volta ao Algarve (Faro > Alto do Malhão) Classifica generale Volta ao Algarve Classifica generale Tirreno-Adriatico Prologo Critérium du Dauphiné (Valence > Valence, cronometro) Campionati polacchi, Gara in linea 4ª tappa Tour de Pologne (Jaworzno > Szczyrk) 5ª tappa Tour de Pologne (Kopalnia Soli Wieliczka > Bielsko-Biała) Classifica generale Tour de Pologne
2020 (Team Ineos/Ineos Grenadiers, una vittoria)