Nacido en Dos Hermanas, Sevilla, Andalucía, jugó en las categorías inferiores del Sevilla FC y debutó con el primer equipo cedido en el CD Utrera, de Segunda División B, durante la temporada 1995-96, con 17 años.
De vuelta al Sevilla en 1996, Marco jugó un año más en las categorías inferiores antes de ser cedido a Jerez CF y CD Burguillos, ambos de Tercera División. A su regreso en 1999, fue asignado al Sevilla Atlético de Tercera División antes de debutar con el primer equipo —y en La Liga— el 19 de mayo de 2000, entrando como suplente en el descanso en la derrota por 3-2 en casa ante el Rayo Vallecano, ya descendido.[2]
En 2002, Marco dejó el Sevilla FC y fichó por el CF Extremadura de la Segunda División B de España. En 2005, tras tres temporadas como titular indiscutible, firmó con el FC Cartagena de la Segunda División B de España.
El 6 de julio de 2007, Marco fue anunciado como jugador del SD Ponferradina, también de la Segunda División B de España.[3]
Posteriormente jugó en el San Fernando CD y el CD Alcalá, sufriendo el descenso con ambos equipos.
En 2012, tras un año sin equipo, Marco fichó por la Peña Deportiva Rociera, de Primera Andaluza, y contribuyó a su ascenso a Tercera división en 2014. En junio del año siguiente, a los 36 años, se retiró.
En 2018, comienza a trabajar en la estructura del Sevilla FC donde sería segundo entrenador de varios equipos de la cantera hispalense.
En la temporada 2024-25, tomó las riendas del Juvenil B del equipo sevillista.
En la temporada 2025-26, se hace cargo del cadete "A" de División de Honor del equipo sevillista.[4]
El 9 de marzo de 2026, se convierte en nuevo entrenador del Sevilla Atlético de la Primera Federación, tras la destitución de Luci Martín.[5]
Clubes en los que ha jugado Marco García:[6]