Ehud Olmert, the Israeli prime minister, warned Lebanon of "far-reaching" consequences after the attacks by the armed Lebanese group on Sunday morning.
The Israeli army said that it had warned civilians to leave south Lebanon.
Shortly afterwards Israeli air force jets bombed the house of a senior Hezbollah official in southern Lebanon. An Aljazeera correspondent in Lebanon reported that at least 10 people were killed or injured in the attack.
In Haifa, Israeli medics said more than a dozen people had also been wounded in the Hezbollah attacks. The city of 260,000 was hit by at least 20 rockets, including one that struck a train station.
Israeli authorities have declared a 48-hour period of martial law in northern Israel.
Hezbollah said the latest attacks were in retaliation for Israel's killing of civilians and destruction of Lebanese infrastructure during the past five days.
"After the Zionist enemy exceeded all limits killing and destroying ... the Islamic Resistance announces that it bombarded the city of Haifa with dozens of Raad 2 and Raad 3 rockets at 9am (0600 GMT)," Hezbollah said in a statement.
The attacks are Hezbollah's deadliest rocket strikes in at least 10 years. Hezbollah usually hits Israeli border towns and this is the first time that Haifa has been reached.
In the last five days Hezbollah has fired about 400 rockets into Israel, killing at least 16 civilians.
Israel has killed at least 80 Lebanese civilians since Hezbollah captured two Israeli soldiers and killed two others in a cross-border raid on Wednesday.
On Friday and Saturday the Israeli air force also struck several Hezbollah targets across Lebanon. The attacks levelled the group's headquarters in south Beirut and hit the movement's television station Al-Manar.