Well, if it was indeed clearly understood by the client that you provided an estimate, then yes, it's okay to open a discussion with the client about additional time. Ideally, you should do this as soon as you are getting close to the original estimate. You can then negotiate with the client as to what may be needed to cover the additional time required.
If you have worked past the original estimate already, you need to talk to the client and explain that your estimate failed to calculate for X, Y, and Z and there were be an additional (x) hours needed for a total cost of $X. From that point it's going to be a negotiation. You may have to sacrifice some of your time to keep the client happy.
You shouldn't continue working, well past the estimate, then just invoice for the additional time. This is one certain way to gain unhappy clients.
If the client was not clear that you were providing an estimate rather than a quote, you may be stuck. If the client regarded your estimate as a hard, solid, quote then they won't be happy with even $1 more. You can broach the subject with them though. In some cases, depending upon the project, quality of work, and their overall understanding of your skills, they may be open to pricing revisions. However, you should be prepared to eat the additional time in some instances.
This is one reason my estimates and quotes look different and have a paragraph of text explaining that it's either an estimate (best guess) or quote (solid price).