Create smooth vertical gradient with Emission shader and Diffuse shader
Better method would be to use Separate XYZ node as a factor between Diffuse/Emission shader.

It basically take Z height of your mesh and assign material based on it.

You can control factor by Color Ramp node.



Edit:

First of all, issue is from Mapping Node. You need to switch it to Point, set Scale to 1, 1, 1, and lower Z Location value. This will be our 'starting' position. Also set Color Ramp to default state (black to the left, white to the right):



Now if you want to control gradient falloff we will use the simplest (I think) method for it by changing only Scale and Location Z values in Mapping Node.

Scale Z value will control gradient falloff - lower value smoother gradient.

Location Z value will move it up and down. 

Look at some of these examples (Location Z and Scale Z noted on pictures):



And going further if you want smooth falloff (top left corner) and hard emission on top of it, you can move white value in Color Ramp node to the left a bit to tweak it.

Blend file:

Here are some of the examples, and little extra fun with Color Ramp node.