Como futbolista
Tapia comenzó su carrera jugando en el club General Maturana de la Asociación de Molina. Tras probarse sin éxito en Universidad de Chile por 4 meses y en Rangers, prueba suerte en O'Higgins, dirigido en ese entonces por Luis Santibáñez, quienes compran su pase por la suma de 62 mil pesos de la época. Debutó el año 1987 durante el torneo de la Segunda división chilena, con el que logró el ascenso a Primera División ese mismo año atajando en la liguilla de promoción jugada en Talca, donde los celestes vencieron a Regional Atacama y Lota Schwager. Sus campañas en el club celeste fueron regulares hasta 1992. A fines de ese año fue contratado por Universidad Católica, que durante el segundo semestre de 1993 lo envió a préstamo a Deportes Temuco, por el resto de la temporada.
En 1994 regresó a Universidad Católica, en donde obtuvo el mejor rendimiento de su carrera futbolística, ganando varios títulos, como la Copa Interamericana 1994, Copa Chile 1995 y el Apertura 1997 y donde es reconocido como uno de los máximos referentes de su historia.
En 1996 formó parte de un equipo de estrellas de la FIFA (conformado además por jugadores tales como Jorge Campos, Michael Laudrup, Lothar Matthäus, Fernando Redondo, Marcel Desailly, Fernando Hierro, Fernando Couto, Krasimir Balakov, Jürgen Klinsmann, David Ginola, Abedi Pelé y George Weah, entre otros) que jugó un partido amistoso benéfico en el Giants Stadium de Nueva Jersey contra la selección olímpica de Brasil que se preparaba para los Juegos de Atlanta de aquel año. Tapia, que sustituyó al mexicano Campos, no pudo evitar la derrota del combinado de estrellas mundiales por 2-1 (goles de Bebeto, Klinsmann y Roberto Carlos).
A fines de 2000 emigró a Vélez Sarsfield, para reemplazar nada más y nada menos que a José Luis Chilavert, pero jugó sólo cinco partidos debido a una seguidilla de lesiones. Luego de renunciar al cuadro argentino, regreso en Chile fichando en Puerto Montt, equipo con el que descendió en 2001, para luego firmar en Unión Española.
En 2003 fue adquirido por Cobreloa, donde vuelve a tener protagonismo, ya que ganó el Torneo Apertura 2003, el Clausura 2003 y alcanzó los cuartos de final de la Copa Libertadores 2003, siendo eliminados por quien sería el campeón, Boca Juniors. Después de un irregular paso por Santos FC de Brasil, retornó a Cobreloa el primer semestre de 2005, para jugar la Copa Libertadores y el Campeonato de Apertura, pero con malos resultados y sin repetir los logros de su anterior paso por el club loíno. El segundo semestre de 2005 fichó por Junior de Barranquilla, donde finalmente se retiró.
Como entrenador
Posteriormente a su retiro como futbolista, desempeñó roles como entrenador de fútbol a nivel universitario y colegial en la Universidad del Mar e Instituto San Martín de Curicó. En 2009 asumió como gerente deportivo de Unión Temuco, equipo fundado por Marcelo Salas y al año siguiente cumple las mismas funciones en Colchagua.
Luego, se trasladó a Ecuador para desempeñarse como preparador de arqueros en el Barcelona de Guayaquil, donde dirigió de manera interina el último partido del club en la Serie A 2019 ante el C.D Olmedo.
En 2020, estuvo al frente de Guayaquil Sport, logrando el ascenso a la Serie B, pero fue despedido debido a una irregular campaña en la Serie B 2021.
En septiembre de 2021, fue contratado por el Libertad Fútbol Club. Con este equipo ganó la Segunda Categoría de Ecuador, asegurando el ascenso a la Serie B para la temporada 2022. El 22 de septiembre se oficializó su salida del equipo lojano.
El 3 de febrero de 2023, fue presentado como nuevo entrenador del C.D. Olmedo, ahora en la Segunda Categoría, con la misión de lograr el ascenso a la Serie B. A pesar de un inicio prometedor, fue destituido el 26 de octubre tras ser eliminado en los dieciseisavos de final de final del torneo de ascenso.
En enero de 2024 se anunció su incorporación al cuerpo técnico de Audax Italiano de la Primera División de Chile, como ayudante del técnico Walter Erviti,Luego de la renuncia de Erviti, el 12 de marzo de 2024 es anunciado como entrenador interino del conjunto itálico.