The question of who won is a diffecult one.
In military terms Israel caused higher casualties, destroyed more hardware etc. The war was a clear proof that Hezballah cannot match the IDF in combat, even when the IDF fights in contradiction to its own doctrine. It is important to remember that Hezballah suffered 500-800 casualties from a fighting force of around 3000 regulars and 20000 "reservists". This is 2% KIA. If we assume that they had a common 1-2.5 ration they also had around 1500 injured. Though it seems like low figures its actually very high casualties, comparable to the IDF loosing around 8000 troops. If we assume, and it is reasoable to assume, that most Hezballah casualties were from its more capable standing forces, lets say, 200 or so, we have a 6% KIA rate.
The ammount of hezballah fortifications and hardware destoryed is also very significant, including virtually all of their bases in southern lebanon, dozens of long range rocket launchers, dozens of tons of ATGM launchers, explosives, light artillery, and light arms.
In addition Hezballah found itself, as a direct result of the war, having to stop its open activity in southern lebannon. The UN force deployed after the war is far better than the one deployed before, although it is still problematic.
There is no doubt that Hezballah was surprised by the power with which Israel reacted. As a result no major incidents took place in the last 3 years on that border. Another reason for htis is that Hezballas "brain", Imaad Mornye was killed in Damascus.
However, Hezballah did survive the war and is rebuilding. It could not win in the first place as it had no intention of fighting such a massive conflict. If we are to believe that Israel intended to destroy Hezballah(which i do not believe), than Hezballah won. If we believe Israel intended to change the reality in south lebanon than I believe Israel won.