This shouldn't be an issue. If you had been doing proper reporting, it should have been obvious early on that slippage was occurring.
The whole point of reporting progress is that issues like this don't come as a surprise.
If it has come as a surprise, that is most definitely a failure on your part (you should know better). In that case, act accordingly. Be honest and be prepared for an upset customer.
I will give one piece of advice that's been invaluable to me. If you come straight out and say you stuffed up, that will disarm all but the most obnoxious client (and you can't disarm those ones anyway so don't worry about it).
It will also be helpful to present some options to the client, such as extending the deadline, dropping functionality to make up time, and so on. That way, you're not seen as a defeatist. Bring them solutions rather than problems.
I answered an earlier question about a failed academic project which may be of some interest to you.