Fatti: A. Nel luglio 2018, iI Consorzio C._ ha indetto un pubblico concorso, retto dalla legge ticinese sulle commesse pubbliche del 20 febbraio 2001 (LCPubb; RL/TI 730.100) ed impostato secondo la procedura libera, per aggiudicare [...]. La commessa concerneva lavori di taglio ed esbosco. Riguardo ai criteri d'idoneità, l'avviso di gara (p.to 5) e il capitolato di appalto, che non sono stati oggetto di ricorsi, indicavano che erano abilitate a concorrere le imprese forestali iscritte all'albo previsto dalla legge ticinese sulle imprese artigianali (LIA; nel frattempo abrogata) e rispettose del contratto collettivo di lavoro per i dipendenti delle imprese forestali della Svizzera italiana. Le disposizioni di gara segnalavano inoltre che al subappalto era ammesso soltanto per i lavori di esbosco con elicottero, l'eventuale truciolatura e i trasporti, specificando altresì che era consentita la presentazione di un unico nominativo per ogni subappalto, pena l'esclusione dell'offerta dalla procedura. Infine, vietata era pure la presentazione di varianti. B. Entro il termine impartito, sono giunte al committente otto offerte. Preso atto del rapporto di valutazione allestito dal proprio consulente, con decisione del 18 settembre 2018 l'ente banditore ha risolto di assegnare la commessa alla A._ SA, prima classificata con 100 punti. Seconda in graduatoria, l'offerta della B._ SagI ha invece ottenuto 99.13 punti. Adito su ricorso di quest'ultima, il 20 dicembre 2018 il Tribunale cantonale amministrativo ha accolto il gravame, annullato la decisione impugnata e attribuito la commessa alla seconda classificata. C. Con ricorso sussidiario in materia costituzionale del 1° febbraio 2019, la A._ SA ha impugnato il giudizio della Corte cantonale davanti al Tribunale federale, domandando che lo stesso sia annullato e che l'incarto le venga rinviato per nuova pronuncia, nel senso dei considerandi. In corso di procedura, il Tribunale cantonale amministrativo si è riconfermato nelle motivazioni e nelle conclusioni della propria sentenza. L'opponente ha chiesto che il ricorso sia respinto, mentre l'ente banditore si è rimesso al giudizio di questa Corte. Insorgente e opponente hanno quindi depositato una replica e una duplica nelle quali hanno ribadito le rispettive posizioni.