Trujillo's airport, Aeropuerto Internacional Capitán Carlos Martínez de Pinillos, is 10 kilometres northwest of the city centre and receives several daily flights from Lima (about an hour). LAN Perú, LATAM, and other carriers operate this route; it's the easiest and fastest way to arrive.
By bus, the Lima-Trujillo route takes between 8 and 10 hours depending on the service. Several companies operate comfortable overnight buses — Cruz del Sur and Oltursa are the most reliable — leaving from Lima's bus terminals. The buses drop you at Trujillo's terminal on the Avenida América Sur, from which taxis to the centre take 10 minutes.
From the north, Chiclayo is about 3 hours away by bus, and buses to/from Cajamarca (6-7 hours) travel through the mountains on a winding but scenic road.