Israel didn't start attacking Beirut in retaliation to Hezbollah's rockets.
Israel started bombing Beirut - a large, urban area - because the Israeli Army lost two soldiers. Two. Hezbollah only started firing missiles after the Israeli bombing began.
Hezbollah, after two days of Israelis bombing Beirut, started firing missiles deeper in to Israel.
So all this talk of Israel needing to "defend itself" with a massive air and ground campaign is missing the most important point - if Israel hadn't "defended itself" so intemperately earlier, it wouldn't have to "defend itself" now.
In short, Israel has overreacted from the beginning, and now has to deal with the consequences. As Matt Yglesias says:
But, having decided to go all-out in response to Hezbollah's raid, what choice did Israel have? The international community doesn't seem to want to send a force in. The Lebanese government can't do what the Israelis are asking it to. The IDF can't "crush" Hezbollah. And having committed to going in and cleaning this up, the Israelis don't want to admit it was all a mistake and "look weak" by going home. No doubt Hezbollah expected "the usual, limited response" to their July 12 raid because a limited response is what it would have made sense for Israel to do.