Producer Sir Cameron Mackintosh invested £2m to transfer the show from London's National Theatre to the Theatre Royal Drury Lane.
Former EastEnders actress Martine McCutcheon took the lead role of Eliza Doolittle, leading to intense publicity before it even opened.
Advance sales of £10m helped the production break even in just 18 weeks, compared to Sir Cameron's previous record for the musical Oliver!, which needed 35 weeks to make back its money.
The success of My Fair Lady comes at a time when tourism in London has taken a knock due to the foot-and-mouth crisis and the events of 11 September.
The show opened at the National in March with a sell-out run.
Quit
There were problems, however, when McCutcheon was forced off stage by ill-health and her part was regularly played by understudy Alexandra Jay.
The show transferred to the Theatre Royal Drury Lane and McCutcheon quit early on the advice of doctors.
The National kept all the receipts from its run of My Fair Lady and will now receive 25% of takings from its West End run as well as receiving royalty payments.
Its run still has £6m in advance bookings and earlier this month it set a new Theatre Royal box office record by taking £409,000 in one week.
Replacement
Nick Allott, managing director of Cameron Mackintosh's company, said: "It would normally take roughly a year for a show of this size to make a profit.
"We're delighted with how well it has been doing, particularly considering the incredibly difficult time that the West End is going through at the moment with foot-and-mouth and then the tragic events this September.
It's had a huge knock-on effect in the West End and we're very lucky to be doing so well."
One of the show's biggest stars Jonathan Pryce will leave the show in April to be replaced by Alex Jennings as Professor Higgins.