Gladbach fell a goal behind at the end of the first half through Danny Da Costa and could do nothing for much of the second half against a disciplined Eintracht defence.
They had to wait until Swiss international Zakaria's fine turn and shot from the edge of the box in the 82nd minute to avoid a second straight loss and lift them to 43 points. Eintracht dropped to sixth place on 34.
Leipzig are two points behind Gladbach in fourth following their 3-1 win at VfB Stuttgart on Saturday.
Second-placed Bayern Munich, 3-2 winners against Augsburg on Friday, are on 48, two off leaders Borussia Dortmund who are in action against Nuremberg on Monday.
News that makes sense
Your trusted source for staying up-to-date with the world around you. Get free daily news updates and analysis, straight to your inbox.
(Reporting by Karolos Grohmann; editing by Clare Fallon)
