Holm, Sohn des Geistlichen Alexander Holm und dessen Frau Christina Elisabeth Askergren, besuchte bis 1855 das Technische Institut "(Teknologiska Institutet)" in Stockholm. 1856 arbeitete er als Ingenieur bei der Eisenbahngesellschaft Köping-Hult, anschließend für kurze Zeit als Mitarbeiter des zoologischen Museums der Königlich Schwedischen Akademie der Wissenschaften. Von 1858 bis 1863 studierte er an der Kunstakademie Stockholm Landschaftsmalerei. Dort war Nils Andersson (1817–1865) sein Lehrer. Während und nach der Studienzeit unternahm er Reisen nach Nordschweden und Norwegen. Für eine Landschaft aus Lappland erhielt er 1862 eine königliche Medaille. Mittels eines Stipendiums bereiste er in den Jahren 1864 bis 1867 Düsseldorf, München und Karlsruhe, wo er Schüler von Hans Fredrik Gude war. Über Mailand und die Schweiz ging er nach Paris und nahm dort 1867 an der Weltausstellung teil. Am 12. November 1871 heiratete er in Stockholm Ildegert Josefina Rosalie Stål (1824–1890), die Tochter eines Großhändlers. Im gleichen Jahr wurde Holm Mitglied der Stockholmer Akademie. Nachdem er bereits vertretungsweise ein Lehramt an der Kunstakademie Stockholm ausgeübt hatte, wurde er dort 1873 stellvertretender Professor, 1881 schließlich ordentlicher Professor. Parallel zu dieser Tätigkeit arbeitete er ab 1881 als Konservator am Schwedischen Nationalmuseum. Von beiden Funktionen zog er sich 1901 zurück. In den 1880er Jahren wirkte er außerdem als Grafiker und Illustrator. Zu seinen Schülern zählen Alfred Thörne und Olof Krumlinde.