Without taking an sociological or anthropological considerations into account, I have tried to give an unbiased attempt of a clear difference between these two terms. Generally speaking, race refers to only your genetic history and identifiable physical characteristics that are separate and distinct from other races. For example, in China’s Mongolian region, the people have distinctive differences in their coloring and facial characteristics and look different than people in other parts of China. It is important to note, however, that humans, no matter what race are 99.9% genetically similar. The biggest difference that can exist between two human beings genetically is their gender.
Ethnicity refers to a group’s race and cultural factors. India has a relatively homogenous race of people, but varying cultural differences; many of them based on religion: Sikh Indians, Hindu Indians, Hari Krishna Indians and so on. Religion is one factor when considering ethnicity. Gender roles and language are also features of ethnicity, as well as food preparation and preferences. Ethnicity covers a smaller subset of people than race; in other words, you can be the same race, with a different ethnicity.
Another distinction can be drawn between the two terms. Race is nature and ethnicity is nurture; that is, birth characteristics versus cultural heritage.