He bagged four cheap wickets in a tight eight-over spell as the hosts’ decision to bat first backfired on them.
P & S struck early when Muhammad Ali trapped opener Jacob Sheath leg before for a duck, and new ball partner Dean Wilson (2-19) reduced Cadnam to 26-3.
The score had advanced to 43 when Williams, on as first change, had George Taylor stumped by Bryon Johnson.
Williams went on to claim 4-13 as Cadnam stumbled to 71-8.
All six P & S bowlers ended up in the wickets with Jon Ashford taking the last one to fall as the hosts were routed for 102.
P & S lost opener Steven Clements in reply for a five-ball duck but Shaun Briggs (28) and Sayeed Shahid (14) added 40 for the second wicket.
With Cadnam contributing 31 wides, P & S brought up a six-wicket victory in only the 22nd over.
Presh Prasad and Jubin Karippai starred with bat and ball as Kerala defeated Calmore 2nds by 65 runs at Loperwood Park.
Prasad struck an unbeaten 74 to help Kerala post 216-9 after they had been struggling on 138-7.
He added 36 for the eighth wicket with Jinoy Mathai (10) and an unbroken 39 for the last wicket with Zachariah Alexander (10 not out).
Opener Prajun Kallidil (26) was second highest scorer behind Prasad.
Calmore progressed to 88-2 in reply before Karippai began to take centre stage by dismissing opener Marcus Bound (37).
Karippai was to end with 5-33 off eight overs, ripping out the middle order, as Calmore slumped from 129-4 to 139-9.
Kerala skipper Dawn Ambi took 2-5 off three overs as the hosts were bowled out for 151 with nine balls remaining.
Sarisbury Athletic failed to build on a good start as they suffered a one-wicket loss to Southampton Community.
Athletic openers Paul Friedrich (31) and Colin Day (28) laid a solid foundation but of the remaining nine batsmen only teenager Max Martin (25) reached double figures.
Sarisbury needed 41 extras, including 28 wides, to help them post 150 all out at Wide Lane.
Fraser Moon (3-48 from six overs, including a maiden) clean bowled Community’s first three batsmen in reply.
But skipper Mirza Humayun, batting at No 6, top scored with 61 and shared a crucial stand with No 7 Safir Ahmed.
Though Community’s last four batsmen contributed just one run between them, Ahmed (37 not out) hit the winning run off the first ball of the 31st over.
Jon Floyd (2-24 off eight overs) and Chris Mottola (2-28 off five) were among the wickets as the hosts claimed their first league win of the campaign.