José Espinoza fue formado en las divisiones menores del Club Universitario de Deportes.
Hizo su debut oficial en la profesional con Universitario de Deportes en 1992, en 1995 fue subcampeón nacional con el cuadro crema y disputó todos los encuentros de la Copa Libertadores 1996, también jugó en la selección peruana pre olímpica en Tandil (1996), en el año 1998 pasó al Club Sporting Cristal y en ese año emigra al fútbol escocés con el Dundee United.
En 1999 regresó al Perú y jugó en Deportivo Pesquero , el año 2000 jugó por la Universidad Autónoma de Honduras, en el 2001 regreso a Universitario de Deportes.
Su último partido en el club merengue fue el miércoles 17 de octubre del 2001 frente al Unión Minas en el Estadio Monumental por el Torneo Clausura de ese año.
En el año 2002 jugó entre los equipos Estudiantes ee Medicina y FBC Melgar.