There is a “reputation cap”. Roughly speaking, reputation gains from upvotes are capped at 200 per day, or in other words, you only get reputation from your first 10 answer upvotes, or 20 question upvotes, or a mixture of both, of the day. (A day is a calendar day, from 00:00 UTC to 00:00 UTC.)
More precisely, whenever you gain reputation from an upvote, 10 points are added to your day's reputation, up to a total of 200. Today, you had 28 answer upvotes and 4 question upvotes (so far); at some point your total reached 200, so you stopped gaining reputation from upvotes; then you had a downvote, brining you back to 198; then you received another upvote, raising you once again to 200. This explains why you got +2 for that upvote.
Bounties, accepted answers, and the -1 penalty for casting a downvote do not count against the reputation cap.
For more information, see the Stack Exchange reputation FAQ and the posts it links.