diff --git a/chassis_state_manager.cpp b/chassis_state_manager.cpp
index a2b6dbf..fb0c2a3 100644
--- a/chassis_state_manager.cpp
+++ b/chassis_state_manager.cpp
@@ -13,6 +13,17 @@
 
 using namespace phosphor::logging;
 
+/* Map a transition to it's systemd target */
+const std::map<server::Chassis::Transition,std::string> SYSTEMD_TARGET_TABLE =
+{
+        {server::Chassis::Transition::Off, "obmc-power-chassis-off@0.target"},
+        {server::Chassis::Transition::On, "obmc-power-chassis-on@0.target"}
+};
+
+constexpr auto SYSTEMD_SERVICE   = "org.freedesktop.systemd1";
+constexpr auto SYSTEMD_OBJ_PATH  = "/org/freedesktop/systemd1";
+constexpr auto SYSTEMD_INTERFACE = "org.freedesktop.systemd1.Manager";
+
 /* TODO:Issue 774 - Use systemd target signals to control chassis state */
 int Chassis::handlePgoodOn(sd_bus_message* /*msg*/, void* usrData,
                            sd_bus_error* retError)
@@ -73,12 +84,30 @@
     return;
 }
 
+void Chassis::executeTransition(Transition tranReq)
+{
+    auto sysdTarget = SYSTEMD_TARGET_TABLE.find(tranReq)->second;
+
+    auto method = this->bus.new_method_call(SYSTEMD_SERVICE,
+                                            SYSTEMD_OBJ_PATH,
+                                            SYSTEMD_INTERFACE,
+                                            "StartUnit");
+
+    method.append(sysdTarget);
+    method.append("replace");
+
+    this->bus.call_noreply(method);
+
+    return;
+}
+
 Chassis::Transition Chassis::requestedPowerTransition(Transition value)
 {
 
     log<level::INFO>("Change to Chassis Requested Power State",
                      entry("CHASSIS_REQUESTED_POWER_STATE=%s",
                            convertForMessage(value).c_str()));
+    executeTransition(value);
     return server::Chassis::requestedPowerTransition(value);
 }
 
diff --git a/chassis_state_manager.hpp b/chassis_state_manager.hpp
index 16456bf..181d75c 100644
--- a/chassis_state_manager.hpp
+++ b/chassis_state_manager.hpp
@@ -61,6 +61,15 @@
         PowerState currentPowerState(PowerState value) override;
 
     private:
+        /** @brief Execute the transition request
+         *
+         * This function calls the appropriate systemd target for the input
+         * transition.
+         *
+         * @param[in] tranReq    - Transition requested
+         */
+        void executeTransition(Transition tranReq);
+
         /** @brief Callback function for pgood going to on state
          *
          *  Update chassis object state to reflect pgood going to on state
