Geraghty made amends with a 12th-minute penalty but Northampton could not maintain momentum as they made a host of mistakes.
Goosen fired over his first drop-goal on 17 minutes and he added another six minutes before the break after penalty misses for both Geraghty and Tobias Botes.
Northampton dominated the rest of the half and after centre James Downey was held up over the line, Foden dived over in the corner for the home side's first try.
Ansboro levelled the scores just after the break following some powerful work by the forwards and a flat Geraghty pass while Ashton finished off a sweeping move three minutes later to put Saints in front.
Geraghty produced a superb inside pass to unhinge Treviso's defence on 54 minutes, Ashton eventually finishing the move off for his 13th try in 13 games.
Goosen gave Treviso hope with a try when Saints failed to clear their lines but although lock Courtney Lawes was sin-binned for retaliation, a Stephen Myler penalty 12 minutes from time sealed the win.
Northampton director of rugby Jim Mallinder:
"We talked before the game about not playing basketball rugby from minute one, but we did try some off-loads that were not on, and that early charge-down try could have proved costly.
"But we know now that we will have to be at our very best in Treviso next week if we are to go into the new year in a strong Heineken Cup position.
"Ben Foden's try on the stroke of half-time was crucial because it meant we gained some impetus going out after the break."
Northampton: Foden; Ashton, Clarke, Downey, Ansbro; Geraghty, Dickson; Tonga'uiha, Hartley, Murray, Lawes, Day, Dowson, Best, Wilson. Replacements: Myler for Downey (64), Mayor for Ansbro (67), Dickens for Dickson (64), Mujati for Tonga'uiha (66), Sharman for Hartley (71), Bonorino for Murray (54), Kruger for Day (54), S Gray for Best (66).
Sin Bin: Lawes (60).
Treviso: McLean; Vilk, Sgarbi, Garcia, Botes; Goosen, Semenzato; Rizzo, Ghiraldini, Rouyet, A Pavanello, van Zyl, Vermaak, Zanni, Kingi. Replacements: Waters for Garcia (54), Picone for Semenzato (56), VIdal for Rizzo (41), Allori for Ghiraldini (41), E. Pavanello for A Pavanello (56). Not Used: Cittadini, A Ceccato, Mulieri.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.