A los 17 años, ingresó a la cantera de los Tigres donde jugó en las categorías 3ra división Sub-17 y Sub-20, pero no logró debutar en primera división.[4]
Real Salt Lake
Se unió a las fuerzas básicas en enero de 2012, entrenándose con el primer equipo durante la segunda mitad de ese año.
Salcedo firmó un contrato con Real Salt Lake en enero de 2013, después de haber cumplido los requisitos mínimos para ser definido como cosecha propia de una capacitación años academia.
El 5 de mayo de 2013, debutó con el Real Salt Lake ingresando al minuto 89' ante los Vancouver Whitecaps de la MLS.[5]
Su primer partido como titular con el Real Salt Lake fue el 8 de mayo del 2013 jugando los 90' minutos en la victoria 2-1 ante el New England Revolution, Salcedo fue expulsado al último minuto del juego tras un cometer un penal.[6]
En la segunda mitad de la temporada 2013 fue titular habitual para Real Salt Lake comenzando 12 juegos de final de la temporada.
El 19 de septiembre del 2014 Salcedo anota su primer gol con el Real Salt Lake en la víctria 5-1 ante Colorado Rapids.[7]
Club Deportivo Guadalajara
Finalmente el 7 de enero de 2015, el Club Deportivo Guadalajara, adquiere en compra definitiva los derechos del jugador convirtiéndose en el sexto refuerzo de cara al Clausura 2015.[8]
Salcedo debutó el 18 de enero del 2015 en el Clausura 2015 en la victoria por 2-1 en casa ante los Pumas de la UNAM jugando 60' minutos.[9]
El 1 de marzo de 2015, Salcedo anotó su primer gol en la victoria por 3-0 en casa ante el Monterrey en el que jugó los 90' minutos.[10]
El 28 de julio del 2015 Salcedo debuta con Chivas en la Copa MX jugando los 90' minutos del juego, en la victoria 2-0 ante los Mineros de Zacatecas.[11]
Ya con su actual equipo, el 4 de noviembre del 2015, se coronó campeón de la Copa MX al vencer 1-0 al Club León.[12]
El 28 de agosto del 2016 Salcedo obtiene su primera convocatoria de la Fiorentina para el partido ante el ChievoVerona de la Serie A 2016-17.[16][17]
El 15 de septiembre del 2016 Salcedo debuta oficialmente a sus 22 años portando el número "18" en la UEFA Europa League con Fiorentina jugando 74' minutos en el empate 0-0 ante el P.A.O.K.[18][19]
El 25 de septiembre del 2016; Salcedo debutó en la Serie A con Fiorentina jugando los 90' minutos en el empate 0-0 ante el A.C. Milan.[20][21]
El 9 de septiembre de 2017; Salcedo debutó en la 1. Bundesliga con el Eintracht Fráncfort jugando los 90' minutos en la victoria 1-0 ante el Borussia Mönchengladbach.[23]
El 14 de mayo de 2018 se hace efectiva la opción de compra, por lo cual el Eintracht Fráncfort habría pagado alrededor de € 5,000,000 por la carta del jugadormexicano[24] en un contrato por 4 años.[25]
Tigres de la UANL
El 20 de enero de 2019, Tigres de la UANL hizo oficial su regresó al equipo felino, donde salió de fuerzas básicas, en compra definitiva, convirtiéndose en el último refuerzo de cara al Clausura 2019 dónde fué Campeón jugando vs León.
Si bien, su rendimiento de inicio no fue el que se esperaba, ha acabado siendo referente defensivo del equipo.[26]
Toronto Football Club
El 15 de enero de 2022,Toronto Football Club hizo oficial la llegada al equipo de los toros rojos. Hizo su debut el 26 de febrero en la apertura de la temporada contra el FC Dallas. El 4 de junio, Salcedo ganó el Campeonato Canadiense de la edición 2020 luego de que Toronto venciera en tanda de penales (4:5) a Forge FC luego de quedar 1-1 en tiempo suplementario, marcando el segundo penalti.
El 12 de julio, Toronto y Salcedo acordaron mutuamente rescindir su contrato para permitirle regresar a México por motivos familiares.
Juarez FC
En julio de 2022, se anunció la llegada del jugador a Juarez FC en la primera division de México, donde solo estuvo 1 año.
Cruz Azul
En Junio de 2023, se anunció la llegada del jugador al Cruz Azul.[27]
El 2 de octubre del 2015 Salcedo debutó en el Preolímpico de 2015 saliendo con el gafete de Capitán, jugando los 90' minutos en la victoria 4-0 ante Costa Rica.[32]
Sub-23
Juegos Olímpicos
El 8 de julio del 2016; Carlos Salcedo fue incluido en la lista final de los 18 futbolistas que disputaran los Juegos Olímpicos Río 2015 con sede en Brasil.[33]
El 4 de agosto del 2016; Carlos Salcedo debutó en los Juegos Olímpicos 2016 jugando los 90' minutos en el empate 2-2 ante Alemania.[34]
El 7 de agosto del 2016; Carlos Salcedo anotó su primer gol en los Juegos Olímpicos 2016 jugando los 90' minutos en la victoria 5-1 ante Fiyi.[35]
El 4 de junio de 2018 Carlos Salcedo fue incluido en la lista final de los 23 futbolistas que irán a disputar la Copa Mundial FIFA 2018 realizada en Rusia.[41]
El 17 de junio de 2018; Carlos Salcedo debutó en la Copa Mundial FIFA 2018 jugando los 90' minutos en la victoria 1-0 ante Alemania.[42]