How to make submit button work in form themes
You don't want to run your drupal_get_form from inside your template, you want to render it from your page callback. You'll instead declare the theme for your form with $form['#theme'] = 'students' in order to use your template.

function agents_form() {
  $form = drupal_get_form('students_form');
  return render($form);
}


function students_form($form, &amp;$form_state){
  $form = array();
  $form['efname'] = array(
    '#type' =&gt; 'textfield',
    '#title' =&gt; 'First Name',
    '#size' =&gt; 28,
    '#maxlength' =&gt; 10,
    '#required' =&gt; TRUE,
  );

  $form['elname'] = array(
    '#type' =&gt; 'textfield',
    '#title' =&gt; 'Last Name',
    '#size' =&gt; 28,
    '#maxlength' =&gt; 10,
    '#required' =&gt; TRUE,
  );
  $form['submit_btn'] = array(
    '#type'=&gt;'submit',
    '#value'=&gt;'Submit',
  );

  $form['#theme'] = 'students';

  return $form;
}


You also had a '#submit' attribute on your submit button element but it would need to be set as an array rather than a string '#submit' =&gt; array('agents_myForm_submit'), However I didn't see that submit function defined so I removed it.

Then your customTemplate.tpl.php can be as simple as:

&lt;div class="left_div"&gt;
  &lt;?php print render($form['efname']); ?&gt;
  &lt;?php print render($form['elname']); ?&gt;
&lt;/div&gt;
&lt;div class="right_div"&gt;
  &lt;?php print render($form['submit_btn']); ?&gt;
&lt;/div&gt;
&lt;?php print drupal_render_children($form); ?&gt;