Смештено је 12 km североисточно од града Зајечара, на левој обали Великог Тимока, с обе стране пута и железничке пруге Зајечар-Неготин.
Назив насеља је фитогеографског порекла, по трњу које су затекли први становници. Насеље је формирано на месту с многобројним траговима римске насељености.
У насељу Трнавац живи 414 пунолетних становника, а просечна старост становништва износи 50,0 година (47,2 код мушкараца и 52,7 код жена). У насељу има 155 домаћинстава, а просечан број чланова по домаћинству је 3,06.
Ово насеље је великим делом насељено Србима (према попису из 2002. године), а у последња три пописа, примећен је пад у броју становника.