Both will work together, but I don't know that both would offer you any better protection. What problem are you trying to solve?
Zone Alarm protects both incoming and outgoing ports, but requires user action to approve any new requests for access by programs. Once you've run it for a while, it becomes less of a hassle, as less new programs ask permissions. Some users also have had issues with ZA "breaking" their application, or preventing it from properly working -- likely badly behaved application, but still a problem for some users. Zone Alarm more resembles a traditional firewall, in that it looks at all IP traffic inbound/outbound and compares them to a ruleset.
Defender protects only incoming ports, so it won't alert if you have some program sending data out (trojan, spyware, etc). It does, however, function largely without user action. You decide how paranoid you want to be about inbound traffic, and Defender allows or blocks traffic. You can choose to allow certain ports or computers, or no to alert on certain "attacks". Defender uses signature files to match "attacks", so it need to be periodically updated, like your anti-virus program. Defender is more of an Intrusion Detection program than a firewall, and is marketed that way towards commercial users.
Personally, I run Defender on my home PC, although I've run Zone Alarm in the past. The main advantages to ZA is it's price (free) and that it protects outbound ports. The disadvantage is that it requires me to decide whether a program is allowed to send or receive traffic (most of the time I'd just click yes, anyway).
-jon-