diff --git a/core/modules/block_content/migration_templates/d7_block_content_body_field.yml b/core/modules/block_content/migration_templates/d7_block_content_body_field.yml
new file mode 100755
index 0000000..0fa7f87
--- /dev/null
+++ b/core/modules/block_content/migration_templates/d7_block_content_body_field.yml
@@ -0,0 +1,31 @@
+id: d7_block_content_body_field
+label: Block content body field configuration
+migration_tags:
+  - Drupal 7
+source:
+  plugin: embedded_data
+  data_rows:
+    -
+      entity_type: block_content
+      bundle: basic
+      field_name: body
+      label: Body
+      display_summary: false
+  ids:
+    entity_type:
+      type: string
+    bundle:
+      type: string
+    field_name:
+      type: string
+process:
+  entity_type: entity_type
+  bundle: bundle
+  field_name: field_name
+  label: label
+  'settings/display_summary': display_summary
+destination:
+  plugin: entity:field_config
+migration_dependencies:
+  required:
+    - d7_block_content_type
diff --git a/core/modules/block_content/migration_templates/d7_block_content_type.yml b/core/modules/block_content/migration_templates/d7_block_content_type.yml
new file mode 100755
index 0000000..27b18b4
--- /dev/null
+++ b/core/modules/block_content/migration_templates/d7_block_content_type.yml
@@ -0,0 +1,18 @@
+id: d7_block_content_type
+label: Block content type
+migration_tags:
+  - Drupal 7
+source:
+  plugin: embedded_data
+  data_rows:
+    -
+      id: basic
+      label: Basic
+  ids:
+    id:
+      type: string
+process:
+  id: id
+  label: label
+destination:
+  plugin: entity:block_content_type
diff --git a/core/modules/block_content/src/Tests/Migrate/d7/MigrateBlockContentBodyFieldTest.php b/core/modules/block_content/src/Tests/Migrate/d7/MigrateBlockContentBodyFieldTest.php
new file mode 100644
index 0000000..50632db
--- /dev/null
+++ b/core/modules/block_content/src/Tests/Migrate/d7/MigrateBlockContentBodyFieldTest.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\block_content\Tests\Migrate\d7\MigrateBlockContentBodyFieldTest.
+ */
+
+namespace Drupal\block_content\Tests\Migrate\d7;
+
+use Drupal\field\Entity\FieldConfig;
+use Drupal\field\Entity\FieldStorageConfig;
+use Drupal\field\FieldConfigInterface;
+use Drupal\field\FieldStorageConfigInterface;
+use Drupal\migrate_drupal\Tests\d7\MigrateDrupal7TestBase;
+
+/**
+ * Attaches a body field to the custom block type.
+ *
+ * @group block_content
+ */
+class MigrateBlockContentBodyFieldTest extends MigrateDrupal7TestBase {
+
+  static $modules = array('block', 'block_content', 'filter', 'text');
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    $this->installConfig(['block_content']);
+    $this->installEntitySchema('block_content');
+    $this->executeMigration('d7_block_content_type');
+    $this->executeMigration('d7_block_content_body_field');
+  }
+
+  /**
+   * Tests the block content body field migration.
+   */
+  public function testBlockContentBodyFieldMigration() {
+    /** @var \Drupal\field\FieldStorageConfigInterface $storage */
+    $storage = FieldStorageConfig::load('block_content.body');
+    $this->assertTrue($storage instanceof FieldStorageConfigInterface);
+    $this->assertIdentical('block_content', $storage->getTargetEntityTypeId());
+    $this->assertIdentical(['basic'], array_values($storage->getBundles()));
+    $this->assertIdentical('body', $storage->getName());
+
+    /** @var \Drupal\field\FieldConfigInterface $field */
+    $field = FieldConfig::load('block_content.basic.body');
+    $this->assertTrue($field instanceof FieldConfigInterface);
+    $this->assertIdentical('block_content', $field->getTargetEntityTypeId());
+    $this->assertIdentical('basic', $field->getTargetBundle());
+    $this->assertIdentical('body', $field->getName());
+    $this->assertIdentical('Body', $field->getLabel());
+  }
+
+}
diff --git a/core/modules/block_content/src/Tests/Migrate/d7/MigrateBlockContentTypeTest.php b/core/modules/block_content/src/Tests/Migrate/d7/MigrateBlockContentTypeTest.php
new file mode 100644
index 0000000..96b66c4
--- /dev/null
+++ b/core/modules/block_content/src/Tests/Migrate/d7/MigrateBlockContentTypeTest.php
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\block_content\Tests\Migrate\d7\MigrateBlockContentTypeTest.
+ */
+
+namespace Drupal\block_content\Tests\Migrate\d7;
+
+use Drupal\block_content\BlockContentTypeInterface;
+use Drupal\block_content\Entity\BlockContentType;
+use Drupal\migrate_drupal\Tests\d7\MigrateDrupal7TestBase;
+
+/**
+ * Tests migration of the basic block content type.
+ *
+ * @group block_content
+ */
+class MigrateBlockContentTypeTest extends MigrateDrupal7TestBase {
+
+  static $modules = array('block', 'block_content', 'filter', 'text');
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    $this->installConfig(['block_content']);
+    $this->installEntitySchema('block_content');
+    $this->executeMigration('d7_block_content_type');
+  }
+
+  /**
+   * Tests the block content type migration.
+   */
+  public function testBlockContentTypeMigration() {
+    /** @var \Drupal\block_content\BlockContentTypeInterface $entity */
+    $entity = BlockContentType::load('basic');
+    $this->assertTrue($entity instanceof BlockContentTypeInterface);
+    $this->assertIdentical('Basic', $entity->label());
+  }
+
+}
