Iš pradžių gyvenvietė vadinosi Subačiaus geležinkelio stotimi, kadangi įsikūrė prie Senojo Subačiaus (tuomet vadinto tiesiog Subačiumi), bet kai XX a. pradžioje išaugo į didesnę gyvenvietę, įsigalėjo sutrumpintas pavadinimas – tiesiog Subačius.
Miestelis prieš I pasaulinį karą pradėjo kurtis Dvariškių kaimo žemėse, nutiesus Radviliškio–Daugpilio geležinkelį1873 m. ir pastačius geležinkelio stotį. Plėtėsi daugiausia link pietų palei vieškelį į Senąjį Subačių ir link vakarų, Stračnių kryptimi. Šiauriau tebuvo tik didelis Dvariškių kaimo užeigos namas. Toje pusėje stovėjo ir rusų valdžios pastatytas mūrinis grūdų sandėlis. XIX a. pabaigoje čia buvo tik nedidelė geležinkelio stotelė.[3] XX a. pradžioje Subačiaus geležinkelio stoties gyvenvietė taip išsiplėtė, kad iš Senojo Subačiaus perėmė valsčiaus centro statusą.
1919 m. gegužės 27 d. buvo Lietuvos savanorių išvaduotas ir bolševikų.
XX a. tarpukariu veikė malūnas, lentpjūvė, elektros stotis ir didelę apyvartą turėjęs didmenų sandėlis (grūdų savišalpos sandėlis – Subačiaus magazinas, buvęs tam tikra valstiečių apsidraudimo forma nuo nederliaus). Šiaurinė miestelio dalis apstatyta maždaug 1922–1939 m. Joje 1937–1939 m. kunigas Povilas Mikalajūnas pastatydino ir bažnyčią (prie Viešintos upės). Į šios bažnyčios pamatus buvo įmūrytas iš Tiltagalių atvežtas akmuo su „žmogaus pėda“.
1958 m. gegužės 15 d. Subačius gavo miesto tipo gyvenvietės statusą (iki tol buvo geležinkelio stoties miestelis). Sovietmečiu veikė Utenos M. Melnikaitės trikotažo ir galanterijos gamybinio susivienijimo cechas.
1920 m. gimė Mykolas Laurinavičius, Antrojo Pasaulinio karo dalyvis, 16 lietuviškosios divizijos 167 šaulių pulko žvalgų būrio vadas, apdovanotas 7 ordinais.
Subačiuje gimė garsus teatro režisierius, teatro ir kino aktorius Povilas Gaidys (1937–2021).
Galerija
Vidurinė mokykla
Rusų valdžios statytas grūdų sandėlis badmečio atvejui