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