Probably first you should spend some time thinking whether it is really needed - but in cases where you decide that contacting the user is useful, there are a few options what can be done.
It is worth mentioning that there is no system for posting private messages here. Relevant thread on Meta Stack Exchange: Any way to send a personal message to another user? This was briefly discussed also on this meta: Should we request a Private Message system?
So anything you post will be visible not only to the user you're addressing but also to other users.1
Comment. One of generally accepted ways is that you post a comment somewhere where the user in question is notified. It is probably a good idea to suggest that the conversation can continue elsewhere (e.g., meta or chat) if the comment is not actually related to the post where you're commenting. And also coming back later and clean-up the comments which are unrelated to the post (after they've already served their purpose and you got the intended information to the user in question) seems to be a polite thing to do.
The system of notifications is quite complex and if you are interested in knowing all details when comment reply of the form @username notifies a user, you can have a look at the links collected in the comment-notification tag-info. But whenever the username is offered in autocompletion (i.e., when you write @ in a comment and then press tab) you can be sure that the user is notified about your comment.
Chat. Another very reasonable option is to contact user in chat. If you search for the username among chat users, you can find chat profile of this user. (Not every user has a chat profile. But people who are on this site long enough are very likely to have one - even if they never intentionally joined chat, it's very probably that they participated in a comment thread that was moved to chat - either by a moderator or by an automated process after the comment thread became too long.)
If you find the chat profile of this user, you can see there whether they were active in some of existing chatrooms. Depending on what you want to discuss you can can either invite the user to already existing chatroom or create a new chatroom and invite the user into this room. (And if the user was recently active in some of the chat rooms, it possible to ping them there using @username syntax. The users who are "pingable" in this way are precisely those whose name is offered in autocomplete. Either way - invitation or chat ping in a room where the user was recently active - the user gets a notification about this.)
See also: How do I invite a user to chat? (Mathematics Meta) and How do I contact other users? (Meta Stack Exchange)
Email. Many users have published their email address (or their website - which usually contains the email address) in their user profile. Or possibly you can find their email from their name - since many users use their real name as the username. So this is also an option.
Still it is probably worth thinking for a while whether you really want to contact user in this way. And you might also have a look at their profile - since some users made their preference for contacting them there. For example, if their included their email address there, that might be a slight indication that they do not mind being contacted via email that much. But some users have mentioned quite clearly in their profile whether they wish to be contacted off-site or not. Here are two examples that are taken from actual MathOverflow profiles, but slightly modified: "You can contact me at potter [at] math [dot] hogwarts [dot] edu" or "Please do not send me private e-mail to call my attention to comments, questions, or other matters related to MathOverflow."
I will also add that my personal opinion is that if this is issue related closely to MathOverflow and if it might be useful that other users see the discussion too, then it is probably better to discuss this on site than via email. (For example, if you start a discussion in chat with a specific user related to some MO question, it's quite likely that some other users might notice the discussion in chat and they might join your discussion.)
Contacting users via email was discussed on this meta before, here is a link: Community standard for contacting users off of MO?
1The exception is that moderators have possibility to contact users privately, so that only the user in question and diamond-wearing users see the content of the exchange. This can be done either using moderator messages or in private chatroom. More details can be found here: How do I contact a user privately, as a moderator?