Williams, seeded No. 1, earned her 19th consecutive victory in the tournament and hasn't lost since the 2012 quarterfinals.
Facing McHale for the first time, Williams converted only five of 17 break-point chances. She let a match point get away in the second set and had to play for an additional 50 minutes to improve to 12-2 this year.
"Christina just started playing better, and playing tennis she has never played before,'' Williams said. "I made a few mistakes and then I just had to pull myself back together.''
Williams regrouped after losing five consecutive games and falling behind 1-0 in the final set. She closed out the victory with her 13th ace and a triumphant scream.
Information from The Associated Press was used in this report.