Posts loop with pagination on a single post page

The simple answer is, get_posts does not work with pagination. In stead you should use wp_query, like this:

$args = array ('posts_per_page' => 5);
$posts = new WP_Query ($args);