Adding markup to fields in block plugins
You can configure a custom view mode with the two fields image and body and then use a twig file:

node--blog-post--my-view-mode.html.twig


And build the node:

$build = \Drupal::entityTypeManager()-&gt;getViewBuilder('node')-&gt;view($node, 'my_view_mode');


Alternatively your task could be easily solved in Views, but maybe this is only an simplified example and you need to do more things in code.