He felt a knot in his heart.
It's usually used as an emotional idiom. Metaphorically it conveys a sense of physical tightness or discomfort in the chest area and is suggestive of profound emotional distress, anxiety, grief or being romantically or painfully upset about someone or something etc.