Wow, I know it's a low flush but there weren't 4 hearts on the board, just three. And you have 2 of them which means there are only 7 left and you think he had two of the seven? I'm shoving there personally in $2NL, people can't let go of two pair, if he has you beat oh well but the odds are too good to call and you can lose a lot more money in other situations worse than this.

I actually see the last bet as value.