Ha esordito nel calcio professionistico con lo , con cui ha vinto un campionato slovacco (2011-12), una Coppa di Slovacchia (2011-12) e una Supercoppa slovacca (2012). Nel 2016 si è trasferito alla Sampdoria, per poi essere acquistato la stagione successiva dall'Inter, con cui ha vinto un campionato italiano (2020-2021), due Coppe Italia (2021-2022 e 2022-2023) e due Supercoppe italiane (2021 e 2022), oltre ad aver raggiunto una finale di UEFA Europa League (2019-20) e una di UEFA Champions League (2022-2023).

Convocato nella nazionale slovacca dal 2016, ha partecipato a tre edizioni del campionato europeo (2016, 2020 e 2024).

A livello individuale si è aggiudicato per quattro volte il premio di Calciatore slovacco dell'anno (2019, 2020, 2021 e 2022).

Biografia È legato sentimentalmente a Barbora Hrončeková, dalla quale ha avuto una figlia, Charlotte, il 18 ottobre 2020.

Caratteristiche tecniche Difensore centrale (anche se nasce come fluidificante destro), ha iniziato la propria carriera in attacco per poi venire arretrato prima in mediana e poi in difesa. Impiegato anche come terzino o come mediano, è abile sia nella marcatura degli avversari che nella fase di impostazione della manovra; la sua altezza lo rende inoltre efficace nel gioco aereo. Dotato di buona tecnica di base, si distingue anche per la concentrazione e la sicurezza con cui scende in campo. È abile anche nelle situazioni di uno contro uno, nonostante quest'ultima sia generalmente una prerogativa di difensori più bassi e veloci.

Carriera Club Žilina e prestito al ViOn Z.M.

Cresciuto nelle giovanili dello Žiar nad Hronom, nel 2007 passa nelle giovanili dello . Il 27 marzo 2012, a soli diciassette anni, esordisce in prima squadra nella partita di Superliga pareggiata 1-1 contro lo , giocando 90 minuti. Il 23 novembre successivo segna il suo primo gol da professionista. Dopo un prestito semestrale allo stesso ViOn, ritorna alla base e il 1º agosto 2013 esordisce in Europa League a Fiume contro i padroni di casa del .

Nella stagione 2014-2015 mette a segno 6 reti (3 su rigore) in 32 gare di campionato. Il 22 ottobre 2014 realizza invece la sua prima doppietta in carriera nella gara di Slovenský Pohár vinta per 6-0 contro il Rača.

Sampdoria Il 29 gennaio 2016 viene acquistato a titolo definitivo dal club italiano della per 1 milione di euro, e sceglie come numero di maglia il 37. Debutta il 24 aprile 2016 nella partita casalinga vinta contro la per 2-1 subentrando nei minuti di recupero al posto di Dodó. Dopo una prima stagione con sole 3 presenze all'attivo (di cui 2 da titolare), nella seconda diventa titolare della difesa doriana, in cui disputa 35 partite.

Inter

Gli esordi (2017-2019) Il 7 luglio 2017 viene annunciato il suo passaggio all'Inter per una cifra vicina ai 30 milioni di euro, la quale lo rende il calciatore slovacco più costoso di sempre; nell'ambito della medesima operazione, Caprari si trasferisce in blucerchiato. Dopo aver firmato un contratto di validità quadriennale, l'11 luglio seguente viene ufficialmente presentato alla stampa tramite una conferenza, nella quale palesa il suo numero di maglia: il 37, derivante dalla combinazione tra il 3, con cui iniziò la sua carriera in Slovacchia, e il 17, il suo numero preferito.

Il 20 agosto successivo, in occasione della gara casalinga contro la Fiorentina, valida per il primo turno di campionato, fa il suo esordio con i colori nerazzurri. Confermatosi titolare, nei match successivi riesce ad incrementare il proprio rendimento, tanto che, il 16 settembre, segna il primo gol contestualmente in Serie A e con i meneghini, sbloccando le marcature nell'insidiosa trasferta contro il Crotone, ripetendosi poco più di un mese dopo, nel successo interno ai danni della Sampdoria, sua ex squadra. Il 12 dicembre 2017 debutta in Coppa Italia, in occasione degli ottavi di finale contro il meno quotato Pordenone, allora militante in Serie C, il quale riesce tuttavia a trascinare la gara ai tiri di rigore: qui viene battuto per 5-4, malgrado lo stesso Škriniar avesse fallito il suo tentativo dal dischetto. Il 24 febbraio apre le marcature nella vittoria contro il Benevento allo stadio Giuseppe Meazza.

Il difensore è protagonista un'ottima annata, segnalandosi per la sua corretteza – solo tre cartellini gialli in 40 partite – e per aver disputato tutte le 38 gare di campionato, traguardo fino ad allora mai raggiunto da alcun giocatore di movimento nella storia dell'Inter. A fine stagione, le sue prestazioni si rivelano decisive per il raggiungimento del quarto posto, ultima posizione disponibile per l'accesso diretto alla successiva edizione della Champions League. Nella stagione seguente si conferma un titolare imprescindibile dell'undici del tecnico Luciano Spalletti ed il 18 settembre fa il debutto in Champions, in occasione del successo in rimonta sul Tottenham. A fine stagione i meneghini si guadagnano nuovamente la qualificazione in Champions, in virtù del successo all'ultima giornata contro l'Empoli.

Le finali europee e i successi nazionali (2019-2023) Il 2 novembre 2019, scendendo in campo nella vittoriosa trasferta contro il , raggiunge le cento presenze con la maglia dell'Inter, mentre il 2 febbraio seguente, vista l'assenza di Samir Handanovič nel successo per 2-0 inflitto all', indossa per la prima volta la fascia di capitano del club. Al contrario delle due stagioni precedenti il suo rendimento è sottotono – tanto da venir inserito nella lista dei cedibili – , anche a causa di un mancato feeling con la difesa a tre del neo tecnico Antonio Conte, rendendosi anche protagonista in negativo in sfide decisive, tra le quali figurano quelle contro e Juventus. Nel finale stagione, allorché la squadra raggiunge la finale di Europa League, venendo sconfitta dal Siviglia, viene relegato in panchina a favore di D'Ambrosio.

Dall'inizio dell'annata successiva, stante la partenza di Diego Godín, riconquista il posto da titolare, fornendo prestazioni di rilievo impreziosite da tre reti, realizzate nel successo contro il Verona e negli scontri di cartello contro le rivali Roma e Atalanta; quest'ultima gara, vinta di misura, consente ai meneghini di portarsi a sei distanze dal Milan secondo e di dare il via alla rincorsa per il tricolore, il quale si concretizza il 2 maggio 2021, grazie alla vittoria contro il Crotone e il contestuale pareggio dell'Atalanta contro il Sassuolo; per Škriniar si tratta del primo trofeo in maglia interista. Inoltre, l'apporto fornito dal trio difensivo, composto anche dai colleghi De Vrij e Bastoni – noto come SDB –, oltre a dimostrarsi determinante ai fini della conquista dello Scudetto, permette alla squadra nerazzurra di concludere il torneo con il minor numero di reti incassate (35).

La stagione seguente, contrassegnata dall'avvicendamento in panchina tra il tecnico leccese ed Inzaghi, vede i meneghini abdicare quali campioni d'Italia dopo un anno; tuttavia il centrale slovacco ha comunque modo di rimpinguare il proprio palmarès in virtù dei trionfi in Supercoppa italiana e in Coppa Italia – entrambi maturati contro la Juventus ai tempi supplementari – e di stabilire primati significativi: il 3 novembre, in occasione della vittoriosa trasferta di Champions League contro i moldavi dello Sheriff Tiraspol, realizza la prima rete in carriera nelle coppe europee, mentre il 9 gennaio, andando a segno nel successo interno contro la Lazio, eguaglia il suo primato di reti stagionali con l'Inter, 4, le medesime della stagione 2017-2018. Il 1º marzo seguente, nel match d'andata della semifinale di Coppa Italia contro il Milan, tocca quota 200 presenze complessive con i nerazzurri, posizionandosi al 57º posto nella classifica all time.

Nell'annata successiva, vince il suo quarto trofeo con l'Inter, la Supercoppa italiana, battendo il . Il 24 maggio conquista la sua seconda Coppa Italia consecutiva, grazie alla vittoria per 2-1 in finale contro la , nella quale tuttavia non scende in campo a causa di un infortunio alla schiena che lo costringe a un'operazione chirurgica ad aprile. Rientrato solo nel finale di stagione, il 10 giugno siede in panchina nella finale di Champions League, persa per 1-0 contro il . Qualche giorno dopo comunica la scelta di non rinnovare il contratto in scadenza con l'Inter, chiudendo quindi la sua esperienza in nerazzurro dopo sei stagioni.

Paris Saint-Germain Il 6 luglio 2023 si accasa al , con cui firma un contratto quinquennale. Esordisce da titolare già alla prima giornata di campionato, pareggiata per 0-0 contro il Lorient. Segna per la prima volta con la nuova maglia il 7 novembre in Champions League, aprendo le marcature nella partita contro il Milan a San Siro, match perso per 2-1. Tuttavia la sua stagione, complici anche dei problemi fisici, è stata problematica e lui ha trovato poco spazio nelle rotazioni del tecnico dei parigini Luis Enrique.

Fenerbahçe Il 30 gennaio 2025 viene ceduto in prestito fino al termine della stagione al , mentre il 31 luglio successivo viene riscattato dal club turco per 10 milioni di euro.

Nazionale Nazionali giovanili Dopo aver collezionato 18 presenze e 2 gol nelle nazionali Under-17, Under-18 e Under-19 della Slovacchia, il 14 novembre 2012 esordisce in Under-21 nella gara amichevole giocata a Marbella e persa per 2-1 contro i pari età della . Il 26 marzo 2015 realizza una doppietta nella semifinale del Challenge Trophy, sfida vinta per 4-1 contro la . L'11 ottobre 2015, nella partita valida per le qualificazioni al campionato europeo Under-21 2017, realizza al 64' il gol del provvisorio 2-1 nella gara vinta 3-1 contro i . Nazionale maggiore Esordisce nella nazionale slovacca il 27 maggio 2016, giocando tutti i 90 minuti della partita amichevole vinta 3-1 contro la . Viene quindi inserito dal commissario tecnico Ján Kozák nella lista dei 23 giocatori che prenderanno parte al campionato europeo 2016 in Francia. Il 20 giugno seguente a Saint-Étienne debutta nella manifestazione europea subentrando al 78' minuto a Vladimir Weiss nella gara pareggiata 0-0 contro l'. Gioca titolare 6 giorni dopo l'ottavo di finale perso 3-0 contro la .

Dopo l'Europeo, diviene titolare della selezione slovacca. Il 27 marzo 2021 segna il suo primo gol in nazionale in occasione della partita pareggiata per 2-2 contro valevole per le qualificazioni al campionato mondiale 2022.

Convocato per il campionato europeo 2020, il 14 giugno 2021 segna contro la il gol che fissa il punteggio sul definitivo 2-1, non riuscendo tuttavia ad evitare la precoce eliminazione della Slovacchia, che si classifica come una delle peggiori terze.

Nel giugno 2022, in seguito al ritiro dalla nazionale di Marek Hamšík, il CT Štefan Tarkovič nomina Škriniar nuovo capitano, evidenziandone le qualità di leadership.

Da capitano ha disputato Euro 2024, in cui gli slovacchi sono stati eliminati agli ottavi dall' dopo i tempi supplementari (2-1).

Statistiche Presenze e reti nei club Statistiche aggiornate al 20 dicembre 2025.