Matlab: Different 1-D FFT results with and without zero-padded
I don't know how MATLAB handles this internally. What will help in your situation however is multiplying your unpadded signal by a suitable window function, like a hann window. 

What you see in your diagrams is a convolution with a $\text{si}$ function, which is the fourier transform of a rectangle function. If you just take the signal as it is and transform it, you essentially multiply it by a rectangle function.

If you try this, for both of your cases, you should get matching results.