Nació en Santiago de Chile en 1966. Estudió Ingeniería Civil en la Escuela de Ingeniería de Antioquia, pero ha desarrollado casi toda su carrera profesional como economista. Realizó una maestría en Economía en la Universidad de los Andes y posteriormente un doctorado en Economía en la Universidad de California. 

Trabajó como ingeniero en Suramericana de Seguros. Después de su maestría, pasó a ser economista en la Federación Nacional de Cafeteros y de allí se fue al Departamento Nacional de Planeación. Luego se fue a hacer su doctorado en Economía en California y al terminar trabajó como investigador del BID (Banco Interamericano de Desarrollo) y consultor del Banco Mundial.

En 2000 regresó a Colombia como investigador de Fedesarrollo, y al año siguiente pasó a ser el subdirector de ese centro de pensamiento. En 2002, con el cambio de gobierno, regresó a Planeación Nacional, esta vez como Subdirector. Estuvo allí hasta 2004, cuando salió para dedicarse a la academia en la Facultad de Economía de la Universidad de Los Andes.

Fue decano de esa facultad y miembro del consejo editorial del periódico El Espectador, en el cual publicaba columnas de opinión. En agosto de 2012 Juan Manuel Santos lo nombró Ministro de Salud y lo ratificó en agosto de 2014. Estuvo en el cargo hasta el 7 de agosto del 2018 cuando terminó el gobierno Santos.

En 2005, recibió la Medalla Juan Luis Londoño y en 2009 el Premio de Periodismo Simón Bolívar al Mejor Artículo de Opinión. En 2010, el periódico Portafolio lo premió como el mejor profesor de economía y administración del país y, en 2018, recibió la Orden de Boyacá, máxima condecoración que el gobierno colombiano concede a sus ciudadanos destacados por los servicios prestados al país.

En 2018 retornó a la academia y fue nombrado director del Centro de Desarrollo Sostenible para América Latina, con sede en la Universidad de Los Andes. Luego, en mayo del 2019 fue elegido Rector de esa universidad, en reemplazo de Pablo Navas. 

En ella, Gaviria fue protagonista de un fuerte choque con la también precandidata Ingrid Betancourt, quien le criticó haber recibido adhesiones de políticos como Germán Varón Cotrino, senador de Cambio Radical,  y Miguel Ángel Pinto senador liberal aliado de la cuestionada casa Tavera de Santander. Para Betancourt estas alianzas cuestionados violaban lo acordado en la coalición, por lo que ella terminó renunciando a la alianza.

Gaviria siguió y llegó a la consulta del 13 de marzo de 2022 con varios apoyos políticos, especialmente en el Partido Liberal. Con 330 mil votos, quedó de de cuarto entre los cinco precandidatos, detrás de Sergio Fajardo, Carlos Amaya, Juan Manuel Galán delante de Jorge Enrique Robledo. 

Luego entró a la campaña del ganador, Sergio Fajardo, como su director programático. Después del mal resultado de Fajardo en primera vuelta, en la que quedó de cuarto, la Coalición se desarmó y Gaviria apoyó públicamente a Gustavo Petro, quien ganó la segunda vuelta. 

Después de mucha especulación sobre su rol en el gobierno de Petro, en junio de 2022 el presidente electo lo nombró responsable del equipo de empalme en temas de educación y el 7 de julio lo anunció como su futuro Ministro de Educación. En el gabinete se encontró con Carolina Corcho, fuerte crítica de sus decisiones como ministro de Salud, en esa cartera. Su oposición a la propuesta de reforma de salud de Corcho y el presidente le costó el Ministerio y fue reemplazado por Aurora Vergara el 27 de febrero del 2023. El anunció se dio en una alocución presidencial anunciada unas horas antes, junto a él salieron la ministras de Deportes y Cultura.