Keeping a project budget under control
Overruns almost never come from a bad initial estimate, but from what was added along the way.
Record every addition
Every "could we also" is a scope change. Keep a list with the cost, even if you decide to accept it. Without the list nobody can explain the overrun.
Work in phases
A phase with its own budget and its own result. That way you decide after each phase rather than finding out at the end.
Include a reserve
A percentage for the unforeseen, explicitly named. A budget without a reserve is a budget that will be exceeded.
Look weekly
Spend against progress, not against the calendar. A project at fifty per cent of budget and twenty per cent of the work is a problem visible in week three.
What to ask your supplier
A signal when an estimate starts slipping, not an invoice at the end. That is a matter of agreement, not goodwill.