Haines, 22, took his aggregate for the season to 455 from seven innings with 58 and van Zyl hit 79 as Sussex reached 318 for seven at stumps.
Lancashire’s bowlers fought back well after Haines and van Zyl took the score to 139 for one in the 41st over following the early loss of Aaron Thomason, who was caught on the crease for a duck to give the persevering Tom Bailey the first of three wickets.
But Lancashire were left to regret dropped catches. Four were put down, two by Steven Croft in the slips, with Haines and van Zyl among the beneficiaries.
The second-wicket pair looked to be putting Sussex in a strong position either side of lunch with van Zyl first to his 50, which included a lovely straight six off leg-spinner Matt Parkinson. Haines punished anything wayward and there seemed few demons in the pitch once the new-ball spells of Bailey and Saqib Mahmood had been negotiated.
But Mahmood returned after lunch and broke through in his 11th over when Haines nicked a delivery that held its line before Liam Livingstone, playing his first Championship match of the season after leaving the IPL early, removed van Zyl, who drove loosely to extra cover trying to cut a ball too close to him having hitting 12 boundaries.
Tom Clark (30) was dropped on nought and needed a concussion check after ducking into Danny Lamb’s short ball and losing a piece of his helmet, but he lofted Livingstone for a straight six before Bailey trapped him in front just before tea.
Delray Rawlins contributed 42, his first significant score of the season, to a fifth-wicket stand of 62 in 16 overs with skipper Ben Brown only to undo his hard work by driving loosely to mid-off and giving Parkinson his first wicket. Brown also looked well set before he was pinned by Lamb for 46 to expose a long Sussex tail.
Bailey picked up his third wicket when he shaped one back in to trap Stuart Meaker (7) in front, but George Garton and Jack Carson put together an unbroken eighth-wicket stand of 26 to secure a third batting point for their side.
Haines said: "I think we would have taken that score at the start of play but quite a few of us got starts including myself. We've talked as a squad about one of the top order going big if they get in and that didn't happen, but I still feel we are in the game because there is definitely a bit in the wicket for the bowlers. Personally, I'm obviously pleased with how the season has started. It was a tough challenge today and I didn't feel as comfortable as I have done this season but I thought I came through it well."