How to insert a block inside the content?
You render the block in the preprocess function for that template. Each template (with its family of suggestions) has a preprocess function. For instance, if you are rendering page.tpl.php or a suggestion based off that, then the preprocess will be named THEME_preprocess_page (template_preprocess_page in the docs). 

Inside the preprocess function you add a new key to the $vars array, and set it to the html output that you want printed. Then, in the template file (ie page.tpl.php) you print that variable.

example:

template.php file

function MYTHEME_preprocess_page(&amp;$vars) {
  $block = module_invoke('module_name', 'block_view', 'block_delta');
  $vars['my_block'] = render($block['content']);
}


page.tpl file:

&lt;?php print $my_block; ?&gt;


You can also just assign the block to a region (below content for instance) and then move it out of there into wherever you want it by using hook_page_alter.

Drupal 7 preprocess tutorial adding variable to template

Using hook_page_alter to move node render items into blocks

Placing the contents of a block in any location

Drupal 7 - How to Print Blocks in templates