We investigate the problem of minimizing the overall transmission delay of data packets in a single-user wireless communication system, where the transmitter has a fixed amount of energy to transmit all of the data packets. We consider two different scenarios. In the first scenario, we assume that packets arrive randomly at the transmitter. We propose two different approaches to solve this problem. First, we develop an iterative algorithm that allocates the total energy of the transmitter to its individual packets, in a way to minimize the total delay. As a second approach, we develop a dynamic programming formulation for the problem. In the second scenario, we assume that all of the packets have already arrived before the transmission starts. In this situation, the cost function has a fixed form, and is convex and differentiable. In this scenario, the iterative algorithm we develop is guaranteed to converge to the unique global optimal solution.