Why would he go three bets with you with just a gut shot. Just because you are willing to push the action that hard with trash, doesn't mean he will call that amount with nothing. I agree with eejit, he had AJ, KJ, QJ, or something of that sort. If he had a set or two pair I can see a call on the river even with the push. I'm pretty sure his bet on the flop was a high card bet to see where you were at, which is common in heads up. The turn gave him top pair and he has you on a lower pair so he's willing to go with you.