Båda ledde i första halvlek, men Gloucester gick in på rasten med Marshall och Richard Hibbard poäng.
Sam James och Mike Phillips korsade i första halvan för Sharks, som gick 24-15 framåt med Byron McGuigans försök.
Men försök från Henry Trinder, Marshall och Billy Tolftrees gav värdarna en bonuspoängsvinst.
Resultatet lämnade Cherry och Whites, i åttonde, en punkt av sjätte plats Harlequins.
Men deras andra toppsex rivaler Northampton Saints spelar Saracens på söndag.
Gloucester hade gjort det tidiga genombrottet på Kingsholm efter ett snyggt utbyte mellan Englands internationella Jonny May och Marshall men värdarna tillät sina motståndare två snabba försök, James och den snart pensionerade f.d. Wales internationella Phillips som kapitaliserade på slappt försvar.
Hibbard, dock, sätta värdarna tillbaka i fronten efter att ha gjort mål av en line-out, innan mållinjen vände i Sales fördel igen när AJ MacGinty satte upp Kieran Longbottom för ett försök och bra spel från nummer åtta Josh Beaumont ut på vingen skickas i McGuigan.
Men Gloucester drog sig undan efter att Trinder hade lämnats med en lätt finish, och Marshall rörde ner sin andra innan Tolvträd rundade av ett fantastiskt flödande drag.
Gloucester tillfällig huvudtränare Jonny Bell: "Jag är förtjust i de fem punkterna men vi gör alltid livet svårt genom att skada oss själva.
"Vi gjorde fem utmärkta försök men vi gav dem tre eller fyra enkla försök och det var för många grundläggande misstag.
"Vi har nog spelat bättre den här säsongen och förlorat. Ersättningarna gjorde ett stort intryck för att komma över linjen idag men det finns fortfarande mycket att arbeta på."
Försäljningschef för rugby Steve Diamond: "Vårt mål var att komma ner hit och göra fyra försök, vilket vi gjorde, men vi borde ha haft åtminstone en annan punkt.
"Den andra togs ifrån oss i sista minuten med ett straff men vi kunde inte se någon offside för att det straffet skulle utdelas.
"Vi är vad vi är och vår position i bordet återspeglar det. Vecka ut, vi är inkonsekventa och vi är även inkonsekventa under loppet av spel. "
Gloucester: Marshall; Sharples, Trinder, Atkinson, maj; Burns, Braley; Hohneck, Hibbard. Afoa; Thursh (kapt), Galarza, Moriaty, Ludlow, Clarke.
Ersättningar: Matu'u, McAllister, Knight, Savage, Morgan, Vellacott, Tolvtrees, Halaifonua.
Försäljning: Haley; Solomona, James, Jennings, McGuigan; MacGinty, Phillips; Harrison, Webber, Aulika, Evans, Ostrikov, Neild, B Curry, Beaumont (kapt).
Ersättningar: T Curry, Flynn, Longbottom, Nott, Pearce, Mitchell, Bedlow, Charnley.
För de senaste rugby facket nyheter följa @bbcrugbyunion på Twitter.
Tom Marshall gjorde två försök att hjälpa Gloucester upprätthålla sina förhoppningar om en topp-sex finish med seger i ett spännande möte med Sale Sharks.