Saksa väed lahkusid Tartust 18. detsembril 1918. 19. detsembriks olid Eesti üksused Peipsi põhjaranniku suunalt taandunud peaaegu Tartuni ja punavägi oli linnast 10-12 kilomeetri kaugusel. Planeeritud vastupealetung ei käivitunud, linnas puhkesid rahutused ja rüüstamised.Põrandaalune kommunistlik linnakomitee asus valitsevat ärevust ja pahameelt igati õhutama. 21. detsembril tuli taganemiskäsk ja linn jäeti maha. Osa Tartu kaitseks määratud Rahvaväe 2. polgu allüksustest deserteerus.
Paar nädalat hiljem põimusid Tartu vabastamisel partisanlik improvisatsioon ja sõjaline kalkulatsioon. Päevakangelasteks tõusid laiarööpmelised soomusrongid nr 1 ja 3 ning Kuperjanovi partisanid.
Soomusrongide üldjuhil kapten K. Partsil ning rongiülematel A. Irvel ja O. Luigal tekkis üsna riskantne Tartu vabastamise plaan pärast Tapa vabastamist. Siis tehti soomusrongiga ka luureretk Vägevani. Plaani asuti teostama 12. jaanuaril 1919, kui sillad Rakvere juures leiti purustatuna. Viru rinde juhatajalt A. Tõnissonilt luba küsimata asus Parts kahe soomusrongiga ööl vastu 13. jaanuari Tapalt teele. Kiirustama sundisid kuuldused Tartus valitsevast terrorist.
Samal ajal tungis üsna omal käel Tartu peale Kuperjanovi salk. Kuperjanov oli mõelnud juba 7. jaanuaril oma partisanidega (150 mehe ja 2 kergekuulipildujaga) linna ära võtta, kuid loobus, kui teised ohvitserid vastu väitsid, et oma jõududega ei suuda nad linna seejärel kaitsta. Olukord oli pealetungiks tõesti sobiv, sest Tartus oli vähe punaväeosi, Kuperjanovi luure andmetel 300–400 sõdurit, kuid 9. jaanuaril saabus Tartusse Viljandi kommunistliku polgu lööksalk eesotsas polgu komissari Aleksander Jeaga. Lööksalk alustas punast terrorit nii linnas kui maakonnas ja hakkas mobiliseerima mehi 3. Võru kommunistlikku kütipolku. 11. jaanuariks oli Tartus registreeritud juba 348 meest. Kuperjanov aga otsustas nüüd ikkagi Tartu peale liikuda. 11. jaanuari hilisõhtul lahkus ta oma partisanidega Puurmanist ja jõudis 13. jaanuari hommikuks Visusti mõisa, kus sai teate Eesti soomusrongide lähenemisest. Lõunaks jõudsid soomusrongid Jõgevale ja õhtuks Kaarepere lähedale, kus ammused tuttavad Parts ja Kuperjanov rünnakuplaani arutasid. Siit sai ka alguse kuperjanovlaste ja soomusronglaste relvavendlus ning vastastikune lugupidamine, mis kestis sõja lõpuni. Jõgeva juures raudteele jõudnud umbes 150 partisani (2. ja 4. rood) võeti rongidele ja sõideti edasi. 1. rood liikus Tartu peale üle Kärevere ning 3. rood tegutses raudtee (Voldi) suunas. Tartu taheti vabastada 14. jaanuaril ehk vana kalendri järgi 1. jaanuaril ning teha sellega vana kalendrit hästi mäletavale rahvale uusaastakingitus. Tegutseda tuli kiiresti, et ära hoida Jänese raudteesilla õhkulaskmist Emajõel.
Tartu võtmeks oli Voldi, looduslik kitsastee, kuhu Tartust olid saadetud Viljandi ja Võru kütipolgu salgad ning Tartu vabatahtlike rood, kokku ligi 300 meest. 13. jaanuari õhtupimeduses lähenesid soomusrongid jaamale. Puhkenud tulevahetuse järel osa punaväelasi põgenes, teine osa võeti vangi (35 vangi lasti lipnik Th. Vassermani initsiatiivil maha; esitatud on ka teisi arve). Keskööks hõivasid partisanid Voldi küla ja soomusrongide dessantlased Voldi mõisa. Punased said lüüa, sest rünnak tuli ootamatult ja nende üksused tegutsesid isoleeritult. Voldi jaamas võeti soomusrongidele ka grupp Jõgevalt Tartu peale liikunud 2. polgu mehi.
Öösel võttis soomusrongide dessant raske võitluse järel ära Äksi kirikumõisa, kus seisis punaste patarei. Dessantsalk sattus Muda jõe ja soo jääl ägeda tule alla ning hävingust päästis nad Voldist pärit noor kapral Mihkel Aren, kes ümbrust hästi tundis ja punaseid kergekuulipildujaga seljatagant ründas. Enne Kärknat sundis soomusrong nr. 1 lühikese tulevahetuse järel punaste soomusrongi taganema. Liiguti edasi pidevalt raudteed parandades. 14. jaanuari hommikul jõudsid soomusrongid Jänese silla juurde. Enne silda olid partisanide roodud rongilt maha läinud ja ahelikus edasi liikunud. Silla juures oli kaitsel kuulsa, juba maailmasõjas sakslastele südilt vastu hakanud Läti 6. Tukumsi (Tukkumi) kütipolgu I pataljon eesotsas polguülem F. Labrencisega. Selle väeosaga tuli Eesti vägedel veel korduvalt võidelda. Öösel olid nad jõudnud ešelonidega Tartu ja kohe edasi saadetud. Soomusrongide tule ja dessantsalga ees tuli lätlastel poole tunni pärast siiski taanduda ning sild eestlastele jätta. Soomusrongi nr 3 dessant võttis samal ajal ära Maramaa mõisa.
Tartu punavõimu tegelastele tuli Eesti vägede rünnak ootamatusena, kuid sama ootamatu oli see ka Eesti 2. diviisi juhtkonnale eesotsas Viktor Puskariga, kes oli Tartu vabastamist kavandanud põhjalikumalt, kuid sellevõrra ka aeglasemalt. Ülemjuhataja oli juba 11. jaanuaril teinud 2. diviisile ülesandeks Tartu ära võtta. Sama direktiiviga allutati diviisile Järvamaa kaitsepataljon Põhja-Tartumaa puhastamiseks. Diviisiülem Puskar aga viivitas, pidades oma jõude liiga napiks, ja soovis enda käsutusse Soome vabatahtlikke. Osalt tulenes viivitus 2. polgu aeglusest. 14. jaanuaril antigi 2. diviisi käsutusse täiendavaid jõude, ülemjuhataja nõudis ka 1. diviisi ülemalt Tartu vabastamise toetamist soomusrongidega. Seega sai 2. diviis ülesande täitmiseks kõik mis võimalik, Puskari käsutuses oli kokku ligi 2000 tääki ja neli suurtükki. Need jõud Tartut ei vabastanud, kuid osutusid sellegipoolest hädavajalikuks punaste vasturünnaku tõrjumisel mõni päev hiljem.
Tartu võimumeestele oli soomusrongide ja kuperjanovlaste kiire lähenemine mõistagi ebameeldiv üllatus. Täitevkomitee sõjaväe osakonna juhataja Maasik rääkis – ilmselt seltsimeeste rahustamiseks – veel 13. jaanuari õhtul, kui soomusronglased juba Voldit vallutasid, peagi Võrust saabuvast kahest polgust ehk 6000 mehest, kes pidid Tartust pealetungile asuma. Tõsi, pealetungi Laiuse ja Viljandi juures kavandatigi ning selleks olid ette nähtud lisajõud, kuid nende ümberpaigutamine venis ja Tartusse jõudis vaid osa määratud vägedest. Need järgmisel päeval linna kaitsta ei suutnud, Eesti vägede kiire edasiliikumine nurjas Punaarmee plaanid. Tartust saadeti 14. jaanuari varahommikul Jänese sillale viimased linnas asuvad eesti punaväe üksused, kuid need jäid hiljaks ja pidid enne kohalejõudmist taanduma. Kokkuvõttes ründasid Eesti väed Tartus asuvaid Punaarmee jõude kõige sobivamal hetkel.
Tee Tartusse oli seega vaba, laialilöödud punaväe salgad põgenesid linna poole. Tartust väljasaadetud punaste soomusrong tahtis silda lõhkuda ja edasitungi takistada, kuid sai Eesti soomusrongilt raske tabamuse suurtükiplatvormi pihta ning kihutas Tartus peatumata Elva poole. Raudteed parandades liikusid Eesti soomusrongid edasi ja toetasid tulega kahel pool edasitungivaid dessandimehi ja partisane. Punaste katse kive täislaaditud platvormiga soomusronge takistada ebaõnnestus samuti. Kell 10 andis Eesti Töörahva Kommuuni siseasjade valitsuse ülem Käspert korralduse punavõimu asutustel linnast lahkuda.
Viimane äge võitlus Tartu pärast puhkes kella 10 paiku Tähtvere mõisa ees väljal, kus läti ja eesti punakütid tegid veel katse linna enda käes hoida. Soomusrongi dessant ei suutnud ilma rongi tuletoetuseta – rong hilines lõhutud raudtee tõttu – kohe edasi tungida. Lätlasi püüti haarata Emajõe-poolselt tiivalt. Pärast tunniajalist lahingut, kui soomusrongid lähemale jõudsid, hakkasid lätlased taganema. Kella 12 paiku tungisid soomusrongi nr 1 dessant ja partisanide 4. rood linna. Järgnesid soomusrongi nr 3 dessant ja partisanide 3. rood. Punaväe viimased neli ešeloni ja 3. raudteekaitse lendsalga improviseeritud soomusrong lahkusid. Kell 13.30 jõudis Tartu raudteejaama soomusrong nr 1 ja veidi hiljem nr 3. Kapten Parts kandis telegraafi teel kindral Tõnissonile ette, et Tartu on pärast palavat taplust ära võetud. Dessantüksused ja partisanid puhastasid linna vaenlastest. Kapten Luiga oma meestega heiskas raekoja torni sinimustvalge lipu. Kell 17 jõudis linna partisanide 1. rood. Suuremaid kokkupõrkeid linnas enam ei olnud. Punaväelased põgenesid paanikas Võru ja Valga poole, mõned andsid end vangi. Sõjasaagiks langes mitu suurtükki, kolm vedurit ning üle 200 vaguni, osalt sõjavarustuse ja laskemoonaga. Tartust väljuvad teed võeti kontrolli alla, sest oli karta punaste vastulööki.
Laskmise vaibudes tulid elanikud vabastajaid tervitama. Krediitkassa ruumidest ja politseihoonest päästeti ligi 350 vangi. 19 inimelu olid kommuuni timukad jõudnud Krediitkassa keldris enne lahkumist kustutada. Keldrist leiti Eesti õigeusu piiskopi Platoni ja veel mitme vaimuliku surnukehad.
Tartu vabastati väikeste kaotustega. Soomusronglased kaotasid 15 meest haavatutena, enamiku Äksi kirikumõisa, aga ka Maramaa ja Tähtvere mõisa juures. Hiljem surid haavadesse soomusrongi nr 1 kuulipildujakomando ülem lipnik Robert Tiilmann ning üks sõdur. Kuperjanovlastel oli üks haavatu ja üks teadmata kadunu. Punavägi kaotas 60–80 meest lahingus langenute või pärast lahingut tapetuina. 6. Läti (Tukumsi) kütipolgul jäi 17 kütti teadmata kadunuks ja evakueeriti 10 haavatut.
Punaarmee juhatusele oli Tartu langemine suur kaotus. Neil oli olnud selge ülekaal, kuni 2000 punaarmeelast (u 1600 tääki) u 500 ründaja vastu. Lüüasaamise põhjus oli kaitse hiline organiseerimine ja Punaarmee üksuste puuduv koostöö. Eesti vägede nii kiiret lööki ei oodatud. 14. jaanuaril saadeti Tartut kaitsma veel 8. Novgorodi kütipolk ning hiinlastest koosnev miini- ja purustusdivisjon, kuid need ei jõudnud kaugemale kui Elvani. Tartu jaamast oli võimalik pealt kuulata punaväe telefonisidet ja see näitas nende hulgas valitsevat paanikat ja kaost. Samal päeval jõudis 2. diviisi ülem V. Puskar Kaareperre ja andis korraldused Tartu vallutamiseks. Hilisõhtul sai ta kätte Kuperjanovi kell 17 saadetud teate, et linn on juba vaenlastest puhas.
Tartu vabastamisel oli suur tähtsus nii sõjaliselt kui moraalselt. Tartu kaotamise tõttu kaotas punavägi peagi kogu Lõuna-Eesti. Nurjus kavatsetav pealetung Tapa suunas. Linna jäämine veel päevaks-paariks punavägede kätte oleks võimaldanud seal kindlustuda läti polkudel ja lõhkuda raudteesilla. Vabastamine oleks edasi lükkunud võib-olla nädalateks ja kujunenud palju verisemaks.