Cursó Derecho y Filosofía y Letras en la Universidad Central de Madrid y en 1862 fue nombrado profesor auxiliar en la misma universidad.
En 1874 alcanzó la cátedra de Geografía histórica, para pasar posteriormente a impartir clase de Historia universal hasta que en 1919 obtuvo la cátedra de Sociología.
Fue elegido diputado a Cortes por el Partido Liberal Fusionista por el distrito electoral de Villarcayo (provincia de Burgos) en las elecciones de 1881 y 1886;[2] después fue senador por la circunscripción electoral de Lérida en las legislaturas 1894-1895, 1898-1899 (donde fue consejero de Instrucción Pública), 1901 y 1902.
[3] Al fallecer legó una importante colección de libros a la Universidad de Madrid.
[4] En 1895 fue elegido académico de número de la Real Academia de la Historia, pero no pudo ocupar la plaza debido a problemas de salud, razón por la que fue declarada vacante en 1913.