Herod the Great died in late March of 4 BC no matter how much some stubborn people keep wishing that wasn't the case. If you must know why 1 BC doesn't work for Herod's death, read this post. Now, let's move on quickly to something that actually matters.
If we accept the miraculous elements of Matthew's Nativity, then Joseph left Egypt the night Herod died - and Herod died less than one month before Passover. Coming on foot from Egypt, Jerusalem was about 3 or 4 weeks away, so Joseph was almost certainly still en route to Judea when he heard about Herod Archelaus causing the massacre of 3,000 people on the Day of Preparation.
Leaving to avoid one Herodian massacre, returning only to hear of an even more horrible one, Joseph must have felt fear for his young charge. In fact, Matthew tells us Joseph felt fear before God instructed (not "warned") Joseph in a dream. "Galilee." After that point, History tells us that Herod Archelaus spent nine more Passovers in charge of Judea. A question: how soon before Joseph was willing to take Jesus into Judea again? Answer: Considering Joseph was taking his foster-parent mission quite seriously, he would likely NOT have taken Jesus anywhere near Jerusalem until that Herodian prince was far, far away.
And now we get back to chronology. If Joseph's fear of Archelaus is what explains Jesus staying at home from the Passover for so many years, then Jesus must have turned twelve around 6 AD, the year Archelaus was exiled. Specifically, for Jesus to be 12 in March of 7 AD, his birth date would have to fall somewhere between April of 7 BC and March of 6 BC.
These dates correspond well with the Governorship of Saturninus (9-6 BC), whom Tertullian names as the Census taker of the nativity. Re-interpreting Luke's uncertain or misunderstood statement about Quirinius is another issue entirely. This twelve month window follows hard on the year (9/8 BC) when Herod fell out of favor with Augustus, and briefly became Rome's "subject". If Saturninus began the census (early 8 BC) before Herod was reconciled (late 8 BC), and if the census dragged on into 7 BC (as it likely must have, due to the difficulty of staggered scheduling for host cities; it couldn't be simultaneous fruit-basket turnover, if Luke 2:3 is correct) then Jesus could have been born around late May, the time when astrologers would have noted the first of three conjunctions between Saturn and Jupiter.
The second conjunction in early October, and the third one in early December, would have brought those Magi to Herod's court, where their report of a 7 month old was swelled by Herod to "toddler" for caution's sake. The King's soldiers went on to kill dozens of infants, if that many, but Joseph, Mary & Jesus were safely en route to Egypt before 7 BC ended. This, at top, is just where we came in.
Finally, all the weight of this reconstruction leans heavily on the language and syntax of one verse - Luke 2:39. If the entirety of Matthew's 2nd chapter is true at all, the flight to Egypt and the return must belong in the span of Luke's "after...". Exegetes must decide if the grammar supports that (and from there perhaps wrestle with what they can or can't claim absolutely about grammar elsewhere) but Luke was either fudging on purpose to leave Egypt out of his story OR he was ignorant of Matthew 2. Take your pick.
This chronological reconstruction should be recognized as the single most-comprehensively plausible on record. IMHO. Again, Jesus was most likely born in 7 BC, around May, moved to Nazareth before his 3rd birthday, and turned twelve in AD 6, just before Archelaus was exiled. That, btw, makes him 34 when John baptized him around autumn of AD 28, and 38 on the cross in April of AD 33. By the ascension, he's have just touched the start of his 40th year on the earth. FWIW.
Update: Links to related posts can be found here.