Gaviria debutta ufficialmente da professionista nel gennaio 2016, e nei primi due mesi dell'anno si impone in una tappa al Tour de San Luis (cui si aggiunge la cronosquadre di apertura) e in una al Tour La Provence. Dopo i campionati del mondo su pista di Londra, in cui per il secondo anno consecutivo si laurea campione iridato dell'omnium, fa il suo esordio alla Tirreno-Adriatico, riuscendo subito a imporsi nella tappa con arrivo a Montalto di Castro e dimostrando così un'ottima condizione in vista dell'imminente Milano-Sanremo; anche nella "Classicissima" desta impressione: rimane con il gruppo dei migliori sul Poggio, ma viene frenato da una caduta negli ultimi 300 metri e tagliato fuori dalla lotta per la vittoria. Dopo il Tour de Suisse e il Tour de Pologne, in cui vince la seconda e la quarta tappa allo sprint, in agosto vola a Rio de Janeiro per correre la gara dell'omnium ai Giochi olimpici: qui tuttavia, pur avendo disputato una buona corsa, deve accontentarsi del quarto posto. Annunciato il ritiro alle corse su pista per dedicarsi solamente alla strada, è protagonista di un ottimo autunno: è infatti secondo al Kampioenschap van Vlaanderen, primo alla Primus Classic Impanis-Van Petegem, secondo al Gran Piemonte, e infine vincitore, in maniera imperiosa, nella prestigiosa Parigi-Tours, grazie a uno scatto a circa 500 metri dal traguardo che anticipa la volata e impedisce la rimonta del francese Arnaud Démare. Una settimana dopo, nella prova in linea dei campionati del mondo di Doha, si presenta tra i favoriti, ma resta coinvolto in uno scontro con lo sloveno Luka Mezgec e l'australiano Luke Durbridge, slogandosi la spalla e vedendosi costretto al ritiro.