The hosts lost both openers early on but Phil Salt (81) and Ross Taylor (54) put on 125 for the third wicket.
Salt's maiden half-century and Ben Brown's quick 31 helped Sussex to 222-7, with Toby Roland-Jones taking 3-47.
Fast bowler Chris Jordan then took 5-28 as Middlesex were dismissed for 191, as Brendon McCullum top-scored with 44.
Middlesex lost Dawid Malan to a duck in the first over as they failed to gather real momentum in their chase - and were reduced to 87-4 after George Garton took the crucial wicket of McCullum and Will Beer (2-34) secured the scalp of Eoin Morgan (31).
Nick Gubbins (37) and James Frankin (28) looked to counter-attack against Sussex's spin and led a recovery but the chase faltered when they departed in successive overs.
After returning to the attack to pick up the wickets of Roland-Jones and Nathan Sowter in the 27th over, England international Jordan secured career-best List A figures by rounding off the innings as he bowled James Fuller.
The victory was Sussex's first 50-over win since beating Somerset in August 2014. The Hove side lost five of their eight group games last season ant their opening two fixtures this year.
Sussex fast bowler Chris Jordan told BBC Sussex: "It's a massive win. Since I came back (from the IPL), we won the first game then went on a three-game losing streak.
"We stopped that rot on Friday night, had a good win against Kent, and again today, having lost the toss on a difficult pitch, we at least managed to put a score on the board and bowled well enough to defend it.
"Even in the short space of time I was at the IPL I did learn quite a lot and felt I did make a little bit of a move in my game, which was the whole aim of going and experiencing that tournament.
"I feel in good rhythm with both bat and ball, and in the field, and it's now a matter of me protecting that form."
Sussex registered their first One-Day Cup victory this season with a 31-run win over Middlesex in a match reduced to 32 overs per side because of rain.