I think too many people over value their hand, you have top pair top kicker, so good showdown value. I would check the river and call the bet, I fold if he shoves.
First of all, I need to explain why I believe this, because usually I imply people think like I do but they don't and have no idea what I am taking about, so, first of all, we don't know this guy. When we are vs an unknown, as I said before, I would rather give them credit as being a good poker playa then being a fish, second, you raise UTG, and he calls on the button thus having position on you. We cbet the flop and he calls, he might float here, but we second barrel on the turn on a scare card and still he calls, alarm bells should go off to the one betting, like: what did he call preflop with and continued on the flop? what is he still calling on the turn with? if I bet river how many hands does he have that he calls a bet with and loses, how many hands does he have that he puts me all in, and few other questions too, wish they came to me.
Anyways, after this, giving the fact that I give him credit for being a decent player, I need to give him a range, probably he does not have AA KK QQ JJ, he most likely reraise preflop, he might have KQ, possibly the only hand he calls a bet on the river and loses, he might have a flush draw but you made it so expensive for him on the turn that unless he is a HUGE calling station he is folding his flush draw or a straight draw for that matter, and we have no reason to believe he is a calling station.
After all this, I give him a decent range of 88 55 33 KQ KJ AK (highly unlikely) any other 2 pair (also highly unlikely), maybe KT, maybe busted draw, even so, most of these hands have us beat, so I would check the river and fold or call depending on the bet size and the time it takes to bet.