Nottinghamshire seamers Harry Gurney and Paul Franks picked up three wickets apiece as the home side inflicted defeat on Surrey at Trent Bridge for the first time since 1992.
Surrey began the day on 73-3 as they chased a further 186 to secure the win on day four of the Division One clash, but five wickets in the morning session effectively spelt the end of their run chase, as the hosts claimed a 114-run victory.
Opener Rory Burns (53) notched up his half-century from 87 deliveries but his dismissal changed the context of the match, Riki Wessels taking the catch behind the stumps off the bowling of Franks (3-16).
Franks then claimed the scalp of Zander de Bruyn (14) for the second time in the match before Gurney ended Gary Wilson's participation as he took a simple return catch to leave Surrey reeling on 108-6.
Gurney (3-40) also secured the next two wickets to fall, Gareth Batty edging to Samit Patel at second slip before Steven Davies (28) chopped on.
Despite the floodlights being on, a 20-minute stoppage for bad light offered brief respite to the visitors.
But Nottinghamshire polished off the tail just after lunch, Franks dismissing Tim Linley with the assistance of Alex Hales at slip.
Stuart Meaker was the last man to fall, Ed Cowan taking a comfortable catch after the batsman had lofted Patel into the offside as Surrey struggled to 144 all out.
Victory was the first for the home side under the stewardship of James Taylor, who was captaining the side in the absence of the injured Chris Read.
The 21-point victory tally lifts Nottinghamshire up to fifth in the table, with Surrey languishing in eighth, without a victory in their opening five championship games.