It's not healthy to try to find who's to blame in a relationship.
Yes, it was wrong for him to leave you waiting, and not give you a definite answer as to when he would be home. If he wanted to hang out with his friends, he should have just said that, instead of making you wait. BUT have you ever thought that maybe, he felt like he had to lie to you because he was afraid of telling you he changed his mind about going out with you and hanging out with his friends instead? Don't get me wrong, I'm not trying to make an excuse for him, but there seems to be a lack of communication between you both.
Look back at your relationship, do you often get mad at him for going out with friends? Does he have time to hang out with friends (without you there?) If the answer is no, then you need to give him some space, or the lying will only get worse.
Talk to him, tell him you didn't appreciate him lying to you about when he would be home, and making you wait four hours, and that if he really wanted to hang out with his friends, he should have just said something. Next time he's in a similar situation, he just needs to talk to you, not lie to you.