After a half-hour delay because of the weather, McCartney, who turns 66 next week, came out on the stage and greeted the crowd in Ukrainian, before diving into the Beatles hit "Drive My Car."
He followed up with a series of Beatles songs, including "Hey Jude," "Let it Be," "Back in the U.S.S.R.," and "Penny Lane." The show also included a rendition of "A Day in the Life," which McCartney dedicated to John Lennon.
McCartney returned for his encore waving a Ukrainian flag and finished off the two-hour show with fireworks, a rendition of "Yesterday" and a musical finale.
Georgian President Mikhail Saakashvili was in attendance.
Before the concert, fans in five major cities sang Beatles songs in a live TV linkup with the capital.
The square where McCartney played was the site of the Orange Revolution in 2004, when peaceful mass protests overturned a fraudulent election and brought a pro-Western opposition leader to power.
Organizers said the money raised will be spent on diagnostic equipment for Ukraine's National Cancer Institute's children's department. Many children now seek treatment abroad because Ukraine lacks the necessary equipment.
The concert was free but the organizers were asking for donations from Ukrainian businessmen and others.
More than 500 people have contributed a total of about $600,000 and donations were continuing to come in, said Tatyana Overina, spokeswoman for the Victor Pinchuk Foundation, which organized the concert.
Pinchuk, a billionaire businessman and Ukraine's richest man, established the foundation in 2006 to contribute to the modernization of Ukraine and bring forward a new generation of Ukrainian leaders.