Sussex made it two wins in successive days to keep their hopes of progress to the knockout stages of the Royal London One-Day Cup alive after a 36-run win over Surrey at the Kia Oval.
Azhar Mahmood chipped in with 40 for the hosts but Sussex bowled superbly on a slow pitch being used for the third successive game and Surrey's innings petered out.
Left-armer Lewis Hatchett made the breakthrough in the seventh over when he had Steven Davies caught at mid on for 23.
Skipper Vikram Solanki and Dilshan took the score to 89 in the 17th over and Solanki looked in good touch until he chased a wide ball from Chris Liddle and was caught behind.
Liddle got some extra bounce to defeat Rory Burns and Gary Wilson chipped a catch to mid on before Dilshan and Mahmood raised Surrey hopes with a stand of 59 in 12 overs for the fifth wicket.
Dilshan played risk-free cricket, hitting just eight boundaries until he was deceived by Will Beer in the 34th over and drilled a return catch.
Mahmood, trying to force the pace, was caught behind off a top-edged pull and with him went any hopes Surrey had of avoiding their third defeat out of four in Group B.
Left-armers Liddle and Lewis Hatchett both finished with three wickets in an impressive bowling performance by Sussex.
Earlier, three of the visitors' top four made half-centuries and although none of them went on to make a big score, Ben Brown and Yasir Arafat provided acceleration at the end with 68 runs coming off the last five overs.
Sussex lost opener Chris Nash to a diving catch at second slip by Burns during a probing opening burst by Stuart Meaker but Wright continued his excellent one-day form with 52 off 55 balls, including five fours and a six.
However, his promising start ended in the 15th over when Joyce rightly turned down his call for a single and he failed to beat Solanki's throw from short cover.
Cachopa, dropped on 28 by Mahmood at slip, posted his maiden one-day half-century for Sussex in a stand of 84 in 16 overs with Joyce, reaching the milestone by upper-cutting Meaker for six.
By then he had lost Joyce, who was superbly held by the diving Wilson for 58 when Meaker was brought back into the attack in the 32nd over.
Cachopa mistimed a sweep off Gareth Batty and was caught at midwicket in the 39th over, ending an innings which lasted 71 balls and contained five fours and two sixes) Matt Machan (29) squandered a decent start when he mistimed a pull off Tim Linley but Brown and Arafat, the hero of Sussex's three-wicket win over Durham on Tuesday, smashed 52 off 35 balls for the sixth wicket.
Brown hooked Mahmood out of the ground for six but both departed in search of the boundary, although Beer provided further acceleration at the end with 19 off six balls - including a six off the final ball of the innings.