The calculated distance (air line) between Elva and Viljandi is approximately 32 miles respectively 51 kilometers.
By car or train, the actual journey to Viljandi is certainly longer, as only the direct route (as the crow flies) between Elva and Viljandi has been calculated here.